PAT考试一些注意事项

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值