codeforces gym 100463I Yawner
2015-07-21 21:33
411 查看
//这题挂得让我怀疑我最近是不是做了什么坏事
题意:一个人有两个集合,先在其中一个集合选一个数x,然后向右走x布,然后再在另一个集合里选一个数y,向左走y步,问是否能走完数轴上所有点。
解:显然是求gcd(ai-bj)的值是不是1,然后有gcd(ai-bj)=gcd(ai-b1,ai-b2,ai-b3,........)=gcd(ai-b1,b2-b1,b3-b1,b4-b1.....)=gcd(gcd(ai-b1),gcd(bj-b1)),然后就可以把a,b分开求了。另外假如求出来gcd值是2,那么要特殊讨论a中是否有奇数,即 即我们先前的假设是步数一样,但实际上a可以比b多走一步。
View Code
题意:一个人有两个集合,先在其中一个集合选一个数x,然后向右走x布,然后再在另一个集合里选一个数y,向左走y步,问是否能走完数轴上所有点。
解:显然是求gcd(ai-bj)的值是不是1,然后有gcd(ai-bj)=gcd(ai-b1,ai-b2,ai-b3,........)=gcd(ai-b1,b2-b1,b3-b1,b4-b1.....)=gcd(gcd(ai-b1),gcd(bj-b1)),然后就可以把a,b分开求了。另外假如求出来gcd值是2,那么要特殊讨论a中是否有奇数,即 即我们先前的假设是步数一样,但实际上a可以比b多走一步。
#include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<cstdlib> #include<queue> #include<vector> #include<map> #include<stack> #include<string> #define LL long long const int MAXN=100007; const int MAXM=0; const int INF=2000000000; using namespace std; int a[MAXN],b[MAXN]; int n,m,cas=0; int gcd(int a,int b){ if (b==0) return a; return gcd(b,a%b); } bool check(int x){ if (x>2) return 0; bool flag=0; for (int i=0;i<n;i++){ if (a[i]&1) flag=true; } if (x==2 && !flag) return 0; return 1; } int main(){ while (scanf("%d%d",&n,&m)==2){ if (n==0 && m==0) break; cas++; for (int i=0;i<n;i++) scanf("%d",&a[i]); for (int i=0;i<m;i++) scanf("%d",&b[i]); sort(a,a+n); sort(b,b+m); if (a[n-1]<b[0] || a[0]>b[m-1]){ printf("Case %d: YES\n",cas); continue; } int ans=a[0]-b[0]; for (int i=1;i<n;i++) ans=gcd(ans,a[i]-b[0]); for (int i=1;i<m;i++) ans=gcd(ans,b[i]-b[0]); if (!check(abs(ans))){ printf("Case %d: YES\n",cas); } else{ printf("Case %d: NO\n",cas); } } return 0; } /* 2 2 1 3 1 3 2 5 10 20 1 2 3 4 5 3 3 3 6 9 3 6 9 2 2 1 2 1 2 0 0 */
View Code
相关文章推荐
- Mac 下 Andriod Studio 常用快捷键
- CentOS Rsync服务端与Windows cwRsync客户端实现数据同步
- 原生JavaScript Demo之图片滚动轮播
- hdu 5289 Assignment 二分+rmq
- Reverse Linked List
- Spiral Matrix
- 求一堆数中取出2个异或使得异或值大于某个数
- 操作系统简单认识
- [c]HDOJ 1102 prim算法的应用
- Mac安装MySQLdb
- 黑马程序员——Java基础语法二
- linux系统中如何查看日志 (常用命令2)
- HDU 1272 小希的迷宫(并查集)
- mac 下部分文件被隐藏
- Linux kernel 分析之二:main函数执行启动过程
- HDU 1863 简单最短树
- ubuntu下解压缩zip,tar,tar.gz和tar.bz2文件
- JniHelper调用java静态和非静态方法总结(即cocos2dx中调用android平台下显示第三方广告)
- Bike and Walk
- 小珂的编译器