暴力程序(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 转圈游戏