BestCoder Round #79 (div.2) hdu 5660 ,hdu 5661
来源:互联网 发布:流畅的python 编辑:程序博客网 时间:2024/05/21 06:40
porblem 1001 ( hdu 5660 )
题意:
jrMz有两种角,第一种角都是正nnn边形的内角,第二种角都是正mmm边形的内角。jrMz想选出其中一些,某种角可以选多个或一个都不选,使得选出的所有角的度数之和恰好为360度。jrMz想知道这是否可能实现。
有多组测试数据,第一行一个整数(1≤T≤10),表示测试数据的组数。
对于每组测试数据,仅一行,两个整数n,m(3≤n,m≤100),之间有一个空格隔开。
可以实现则输出Yes,否则输出No。
题解:
很简单的题,只需要用数学公式求出两个正多边形的内角,在暴力枚举是否能构成360度即可,然而公式中有除法操作,是否需要考虑精度问题呢?我也不知道,反正数据范围之内的貌似不用(有人不考虑也过了),然而我还是重新改了一次代码,将等式左右化简为了不用除的方法,也过了。
代码:
#include<iostream>#include<algorithm>#include<stdio.h>using namespace std;int n,m,T;int main(){ scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); int n1=m*(n-2); int n2=n*(m-2); int ans=2*m*n; int sum=0; int flag=0; while(sum<=ans) { if((ans-sum)%n2==0) { flag=1; break; } sum+=n1; } if (flag) printf("Yes\n"); else printf("No\n"); }}
problem 1002 ( hdu 5661)
题意:
有四个正整数a,b,c,d,满足a≤b且c≤d。选择两个整数x,y,满足a≤x≤b且c≤y≤d,使得x XOR y的值最大,输出最大值。
题解:
这道题还是比较厉害,想出这种做法的人也是比较厉害,没有用什么恶心的搜索,ORZ,在此题中首先想到一定需要按位来做题,每次从高位到低位优先去取让x与y此位为不同的那种方法,然后再考虑这位上相同的做法,具体实现看代码。
代码:
#include<iostream>#include<algorithm>#include<stdio.h>using namespace std;typedef long long LL;LL a,b,c,d;int T;bool pan(LL x,LL y,int i){ LL mx=x+(1LL<<i)-1;//假设从此之后x的位上都取1 LL my=y+(1LL<<i)-1;//假设从此之后y的位上都取1 //此时mx,my分别是x与y在取当前位上取当前状态后,还能够构成的最大数 if (x>b || mx<a) return 0;//如果当前x超过范围,或者它还能构成的最大数还不能达到范围,那么此状态是错的 if (y>d || my<c) return 0; return 1;}int main(){ scanf("%d",&T); while(T--) { //cin>>a>>b>>c>>d; scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&d); LL zz=0,yy=0; for (int i=63;i>=0;i--) { //分别判断四种情况,注意优先判断位上不同的情况 if (pan(zz,yy+(1LL<<i),i))//x的i位上为0,y的i位上为1,判断 yy+=(1LL<<i); else if (pan(zz+(1LL<<i),yy,i)) zz+=(1LL<<i); else if (pan(zz+(1LL<<i),yy+(1LL<<i),i)) { zz+=(1LL<<i); yy+=(1LL<<i); } else continue; } printf("%I64d\n",zz^yy); //cout<<(zz^yy)<<endl; }}
0 0
- BestCoder Round #79 (div.2) hdu 5660 ,hdu 5661
- 【HDU】BestCoder Round #11 (Div. 2)
- hdu 5600 BestCoder Round #67 (div.2)
- hdu 5637 BestCoder Round #74 (div.2)
- BestCoder Round #52 (div.2)(hdu 5417,hdu 5418)
- BestCoder Round #11 (Div. 2) Argestes and Sequence (hdu 5057)
- BestCoder Round #54 (div.2) hdu 5428 求质因数
- BestCoder Round #54 (div.2) HDU 5428 The Factor(1002)
- BestCoder Round #54 (div.2)HDU 5429 Geometric Progression(1003)
- hdu 5464 Clarke and problem (BestCoder Round #56 (div.2))
- BestCoder Round #57 (div.2) HDU 5479 Scaena Felix
- BestCoder Round #57 (div.2)HDU 5480 Conturbatio
- hdu 5495 BestCoder Round #58 (div.2) 1002
- BestCoder Round #58 (div.2)(hdu 5494,hdu5495,hdu5496)
- BestCoder Round #57 (div.2) HDU 5479 Scaena Felix
- BestCoder Round #59 (div.2) HDU 5499 5500 5501
- hdu 5499 SDOI 【BestCoder Round #59 (div.2) 】
- hdu 5523 Game 【BestCoder Round #61 (div.2)】
- iOS学习笔记03-UITableView
- 87 智能指针(一)
- 搜索 第一题 二分问题
- 2006: [NOI2010]超级钢琴 ST表+优先队列
- 搜索专题 第二个·
- BestCoder Round #79 (div.2) hdu 5660 ,hdu 5661
- Google C++命名规范
- Tricks(三十一)—— 访问一个数组相邻的奇数位偶数位
- Unity之使用csv文件
- 2795: [Poi2012]A Horrible Poem hash
- 【1-3】pythondb增删改查
- 2179: FFT快速傅立叶 FFT
- 推荐!国外程序员整理的机器学习资源大全
- 2194: 快速傅立叶之二 FFT