暴力程序(std.cpp)
#include<bits/stdc++.h> using namespace std; int n,m,k,x; int main(){ // freopen("data.in","r",stdin); // freopen("std.out","w",stdout); scanf("%d%d%d%d",&n,&m,&k,&x); for(int i=1;i<=pow(10,k);i++)x+=m,x%=n; printf("%d\n",x); return 0; }待验证程序(my.cpp)
#include<bits/stdc++.h> using namespace std; int n,m,k,x; int fast_pow(int a,int b,int mod){ int c=1; while(b){ if(b&1)c*=a,c%=mod; a*=a,a%=mod; b>>=1; } return c; } int main(){ // freopen("data.in","r",stdin); // freopen("my.out","w",stdout); scanf("%d%d%d%d",&n,&m,&k,&x); for(int i=1;i<=fast_pow(10,k,n);i++)x+=m,x%=n; printf("%d\n",x); return 0; }验证程序(compare.cpp)
#include<bits/stdc++.h> using namespace std; int main(){ while(1){ clock_t t1,t2;//clock的类型为clock_t system("rand.exe>data.in"); system("std.exe<data.in>std.out"); t1=clock(); system("my.exe<data.in>my.out"); t2=clock()-t1; cout<<"time: "<<t2<<endl; if(system("fc std.out my.out")){ printf("Wrong answer.\n"); exit(0); } printf("Correct!\n"); } return 0; } //#include<bits/stdc++.h> //using namespace std; //int main(){ // while(1){ // system("./rand"); // system("./std"); // system("./my"); // if(system("diff std.out my.out")){ // printf("Wrong answer."); // exit(0); // } // printf("Correct!\n"); // } //}数据生成器(rand.cpp)
#include<bits/stdc++.h> using namespace std; int n,m,k,x; int main(){ srand(time(0)); n=rand()%100+10,m=rand()%100+1; if(n<m)swap(n,m); x=rand()%100+1; while(x>n){ x=rand()%n+1; } k=rand()%5; printf("%d %d %d %d\n",n,m,k,x); return 0; } //#include<bits/stdc++.h> //using namespace std; //stringstream ss; //int n,m,k,x; //int main(int argc,char *argv[]){ // freopen("data.in","w",stdout); // int seed=time(0); // if(argc){ // ss.clear(); // ss<<argv[1]; // ss>>seed; // } // srand(seed); // srand(time(0)); // n=rand()%100+10,m=rand()%100+1; // if(n<m)swap(n,m); // x=rand()%100+1; // while(x>n){ // x=rand()%n+1; // } // k=rand()%5; // printf("%d %d %d %d\n",n,m,k,x); // return 0; //}注释内为Windows下程序,注释外为Linux下程序
示例题目传送门:noip2013 转圈游戏
