1407: [Noi2002]Savage
来源:互联网 发布:淘宝3个月没卖出一件 编辑:程序博客网 时间:2024/05/16 15:32
枚举m 用exgcd来check一下就好了
#include<bits/stdc++.h>using namespace std;const int N=16;inline int read(){ char ch=getchar(); int x=0,f=1; while(ch<'0'||ch>'9'){if(ch=='-')f=-1; ch=getchar();} while(ch>='0'&&ch<='9'){x=(x<<3)+(x<<1)+ch-'0'; ch=getchar();} return x*f;}int exgcd(int a,int b,int &x,int &y){ if(!b){x=1,y=0; return a;} int tx,ty,d=exgcd(b,a%b,tx,ty); y=tx-a/b*ty,x=ty; return d;}int n,c[N],p[N],l[N],m;bool check(int x,int y){ int a=p[x]-p[y],b=m,C=c[y]-c[x],tx,ty; if(!a)return !C; int d=exgcd(a,b,tx,ty); if(C%d)return 0; tx*=C/d,tx=tx%(b/d); if(tx<0)tx+=abs(b/d); if(tx>l[x]||tx>l[y])return 0; return 1;}int main(){ n=read(); for(int i=1;i<=n;++i)c[i]=read(),p[i]=read(),l[i]=read(),m=c[i]>m?c[i]:m; for(;;m++){ bool ok=1; for(int i=1;i<n&&ok;++i)for(int j=i+1;j<=n;++j) if(check(i,j)){ok=0; break;} if(ok)break; } printf("%d\n",m); return 0;}
0 0
- 【BZOJ 1407】 [Noi2002]Savage
- bzoj 1407: [Noi2002]Savage
- 1407: [Noi2002]Savage
- 【扩展欧几里得】Bzoj 1407: [Noi2002]Savage
- 1407: [Noi2002]Savage 扩展欧几里得算法
- BZOJ 1407: [Noi2002]Savage 扩展欧几里得
- bzoj1407: [Noi2002]Savage
- [BZOJ1407][Noi2002]Savage
- bzoj1407: [Noi2002]Savage
- bzoj1407【NOI2002】Savage
- BZOJ1407: [Noi2002]Savage
- 【BZOJ1407】 [Noi2002]Savage
- bzoj1407: [Noi2002]Savage
- bzoj1407[Noi2002] Savage
- BZOJ1407: [Noi2002]Savage
- BZOJ1407: [Noi2002]Savage
- 拓展欧几里得 [Noi2002]Savage
- 【NOI2002】【bzoj1407】Savage
- 好玩的API调用之---星座运势的API与爬虫爬取
- C++实现栈中元素排序
- LeetCode | 21. Merge Two Sorted Lists
- oj2325查找【数组】
- java 去英文单词出现的次数
- 1407: [Noi2002]Savage
- hdu1242优先队列+BFS
- 104. Maximum Depth of Binary Tree Add to List DescriptionHintsSubmissions
- jquery.pagination.js分页的使用
- Python 编程遇到的一些小问题 新手勿喷,嘻嘻
- java-创建线程
- linux makefile教程
- Android 对话框
- pin planner中符号标记的含义