考试经验总结
考试经验总结
- 在考试的时候不要死磕某一道题,最开始要先全看一下题,给每道题都预留一下时间,不能在一棵树上吊死,可以使用类似于每道题写1.5h的策略,没写出来就先跳。
- 先打暴力,拿暴力和正解对拍。
对拍1
#include<bits/stdc++.h>
using namespace std;
int main(){
int ok=0;
int n=10;
for(int i=1;i<=n;++i){
system("date.exe > in.txt");
system("std.exe < in.txt > std.txt");
double begin=clock();
system("P1001.exe < in.txt > P1001.txt");
double end=clock();
double t=(end-begin);
if(system("fc P1001.txt std.txt")){
system("color b");
printf("测试点#%d Wrong Answer\n",i);
}
else if(t>1000){
system("color 4");
printf("测试点#%d Time Limited Exceeded 用时 %.0lfms\n",i,t);
}
else{
system("color a");
printf("测试点#%d Accepted 用时%.0lfms\n",i,t),ok++;
}
}
printf("\n");
double res=100.0*ok/n;
printf("共 %d 组测试数据,AC数据 %d 组。 得分%.1lf。",n,ok,res);
}
对拍2
#include<bits/stdc++.h>
using namespace std;
int main(){
int cnt=0;
while(1){
system("data.exe > 1.in");
system("chk.exe < 1.in > 1.ans");
system("baoliT1.exe < 1.in > 1.out");
if(system("fc 1.out 1.ans"))
break;
++cnt;
cout<<cnt<<"\n";
}
return 0;
}
生成毫秒级随机数
struct _timeb T;
_ftime(&T);
mt19937 myrand(T.millitm);
- 打草稿,看数据范围,看程序内有没有加法、乘法。
- 算空间,算时间,能开的的下的情况尽量开
long long
。 - 使用
set
时用自带的lower_bound
。