[BZOJ1407][Noi2002]Savage
2015-07-20 00:29
344 查看
原题地址
枚举每对野人后扩展欧几里得即可.
这样做理论复杂度貌似会爆结果没爆OLZ…
AC code:
枚举每对野人后扩展欧几里得即可.
这样做理论复杂度貌似会爆结果没爆OLZ…
AC code:
#include <cstdio> #include <algorithm> using namespace std; const int N=101; const int INF=1<<29; int n,m0; int c ,p ,l ; void exgcd(int &x,int &y,int a,int b){ if(!b){ x=1;y=0; return ; } exgcd(x,y,b,a%b); int xx=x,yy=y; x=yy;y=xx-(a/b)*yy; } int solve(int a,int b,int c){ int x,y,g; if(a<0) a=(a/c+1)*c+a; if(b<0) b=(b/c+1)*c+b; exgcd(x,y,a,c); g=a*x+c*y; if(b%g) return INF; x*=b/g; c/=g; if(x<0) x=((-x/c)+1)*c+x; x%=c; return x; } int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d%d%d",&c[i],&p[i],&l[i]); if(c[i]>m0) m0=c[i]; } for(int i=m0;i<=1000000;i++){ bool flag=1; for(int j=1;j<=n-1&&flag;j++){ for(int k=j+1;k<=n&&flag;k++){ int x=solve(p[j]-p[k],c[k]-c[j],i); if(x<=min(l[j],l[k])) flag=0; } } if(flag){ printf("%d",i); break; } } return 0; }
相关文章推荐
- codeforces 399B Red and Blue Balls-数据-(模拟题找规律)
- Microsoft SQL Server 2008 R2官方中文版下载(附正式版序列号)
- 2015.7.20日记
- Rotate Array
- codeforces 399A Pages-yy题
- Chart图表
- [Android UI界面] tab_Host页面跳转,传值,刷新等问题汇总。
- 导航栏图标问题
- 【攻克Android(25)】HandlerThread
- [BZOJ1067][SCOI2007]降雨量
- Factorial Trailing Zeroes
- maven中如何打包源代码
- mvc路由特性学习1
- 大一暑假计划2015.7.20
- Week—schedule 2
- CSS组件化思考
- Excel Sheet Column Number
- Android Studio 左右括号无法 自动匹配解决办法
- [leetcode] 206.Reverse Linked List
- linux $@和$*区别