POJ 1006 中国剩余定理?不用那么故弄玄虚吧。。。

中国剩余定理?

 

似乎是一种预处理手段 我没有详细看

 

不过这道题完全用不着啊

 

可以直观地在O(N/M)时间内搞定

 

还是因为一个小BUG WA了好多次 一定要仔细分析自己的代码。。

 

代码如下:

 

#include <iostream> using namespace std; int P_and_E = 23*28; int E_and_I = 28*33; int P_and_I = 23*33; int Total = 23*28*33; int main() { int p,e,i,d; int cs = 1; while (1) { cin>>p>>e>>i>>d; while(p>=23) p-=23; while(e>=28) e-=28; while(i>=33) i-=33; if(!(p+1)&&!(e+1)&&!(i+1)&&!(d+1)) break; int result = -1; for (int j = p;j <= 2*Total;j+=23) { if ((j-e)%28==0&&(j-i)%33==0) { if(j<=d) j+=Total; result = j; break; } } cout<<"Case "<<cs++<<": the next triple peak occurs in "<<result-d<<" days."<<endl; } }

 

 

你可能感兴趣的:(POJ 1006 中国剩余定理?不用那么故弄玄虚吧。。。)