正经派
关于做题
-
首先,看到题目之后不要急着写代码,先在草稿纸上分析完整再开始写,如果思考后没有正解,先写暴力再进行优化
-
可以尝试手推样例看一下有没有特殊性质,如果手推太困难可以借助程序打表找规律
-
遇到复杂贪心、结论题直接猜结论,再和暴力对拍
-
记得开
long long,分析数据范围开__int128 -
多测记得输出换行和清空数据
关于时间分配(CSP-S)
*J组随便AK
- 1h出T1(如果理想的话)
- 剩下直接打部分分
关于编译
g++ foo.cpp -o foo -std=c++14 -O2 -Wall -Wextra
记得开 freopen,检查文件名!!!!
记得分析数据范围开 long long !!!
记得多测清空
数组大小开对了吗,线段树开 $4n$ 了吗
保存代码了吗
记得对拍
#include <bits/stdc++.h>
using namespace std;
void create_dataset(){
ofstream fout("prob.in");
// create my dataset
fout.close();
}
int main(){
int tests = 100;
for(int i = 1;i <= tests;i++){
create_dateset();
system("brute.exe");
system("sol.exe");
if(system("fc sol.out brute.ans"){
print("Wa on test %d\n", i);
return 0;
}
}
printf("Accepted %d tests\n", tests);
}
部分分注意事项
$n \le 24$ 可以枚举子集
$n \le 9$ 全排列
可以这样写
void solveA(){
//todo
}
void solveB(){
//todo
}
int main(){
input();
if(checkA()) solveA();
if(checkB()) solveB();
}
骗分派
-
字符串直接上哈希
-
贪心不能证明哪个正确?9 使用这个来帮助你
cout << max(solveA(),solveB()) << "\n";
0 条讨论