- 有除法时,特别处理分母为0的情况
- 执行后发现卡住了,很有可能是scanf时忘记写 & 了
- if判断语句注意不要把 == 写成 =
- 程序提交后显示超时,注意检查循环跳出情况,for中的 i-- 是不是写成了 i++
- 判断素数时,i的取值范围[2,sqrt(a)],其中a是待判断的数
- 把ID当成int类型时,最后输出记得在前面添加0补齐
- 当图的节点有>=10000个时,用邻接表来存储,以防内存超限
- 当题目中记录较多,以字符串为主键时,建议用hash处理,以免超时
- 在用getline(cin,str)时,如果前面还有scanf(),用%*c或getchar()来接收最后的回车键
- bool 类型数组初始化全为false,可用bool vis[MAXN]={false};若想初始化全为true,只能用fill(vis,vis+MAXN,true);
- 数据较多时,cin,cout可能会超时,尽量用scanf,printf;
- 如果string 类型的的输入不想用cin>>str;可以这样:scanf("%s",temp);string str=temp;
- Tools->Compiler Options->General->在上框中加上 -std=c++11,以支持c++11的编译
- Tools->Compiler Options->Setting->Linker->Generate debugging information(-g3) 后面改成Yes,使得Dev C++可以调试
- 考试前先把所有头文件写在单独一页中,freopen("1.txt","r",stdin);以及1.txt放在同一目录,每次复制过去,测试用例复制到1.txt中,提交时记得把freopen("1.txt","r",stdin);这句删了
- 图,二叉树的题目注意节点编号是1~N还是0~N-1
- 用邻接矩阵存储图时,记得初始化fill(G[0],G[0]+MAXN*MAXN,INF);
- int 的范围大概-2*10^9~2*10^9(10位),long long 范围大概-9*10^18~9*10^18(19位),int*int可能超过int范围
- 进制转化考的比较多,要熟练掌握
- string的比较直接==,<,>即可(字典序大小),而char[]的比较用strcmp();复制时string直接=,char[]用strcpy();
- 遍历map例如<int,Book>时,使用it->second.title会比先定义临时变量 Book b=it->second;再访问b.tiitle快很多,因为指针内容的访问比结构体本身快。对于一些容易超时的map遍历时可以注意下