ACM竞赛路上亲爱的坑们

原创 2017年08月02日 14:14:23

写在前边:这些梗都是敝人自己做题和比赛时曾经坑过自己的地方,特别在这里记录一下,所有的链接都是本博客中的题解链接(有大致题意说明和代码),原题请到OJ上自行寻找。目的是提升自身姿势。欢迎大佬们给我提出更好的建议,十分感谢。


#1:一些写法的线段树需要开四倍空间。大概是因为:在很靠近叶子的地方,他的编号就很接近2倍了。然后他的孩子(超生)就接近4倍了。 例如:Codeforces 833B


#2:统计答案的时候 最前边乘上一个1LL,很多时候容易爆。例如:HDU 6058


#3:long long 占位符%I64d,如果只用%d会把低四个字节的值作为int输出,而且更会有奇怪的问题。更重要的是调试时候的输出一定别把占位符写错。或者直接用cout调试输出,否则自己把自己搞崩就不好了。


#4:背包注意循环次序(物品体积内外次序,升序降序)


#5:multiset可以当成堆用


#6:用rk数组来排序的时候,注意按序访问的时候,注意下标是rk[ i ] 不是 i


#7:POJ没有bits/stdc++.h


#8:读入优化要看好题目中有没有负数。


#9:LL最大值大约是9e18 .如果还不够请上Java


#10:比赛稳住,跟好榜。


#11:单点算贡献TLE的话。可以尝试用区间快速算贡献。例如:Codeforces 850B


#12:字符串题目,可以试试用特殊字符把字符串拼接然后跑ACAM/SA/SAM等。或者(自身+特殊字符+自身)等操作。例如:HDU 6096


#13:树的题目一定要测试一下不同长度的链的情况,再提交。


#14:位运算运算优先级特别低,比加法低,比逻辑运算低(x ^ y <N  - - - - - - > x ^ ( y < N) )


#15:比较玄妙的题目,要大胆尝试分治,因为分治之后思路一般会有比较大的变化。比如按照二进制位分组做20次,直接将位划分位两半,将复杂度开根号。万一函数有加性,那就可以用2*sqrt的复杂度分别算玩,然后用lower_bound或者map做统计了。例如:HDU5936


#16:点分治的复杂度是N*logN*层复杂度,一般来讲,层复杂度是指组合答案时的复杂度,如果是可以接受的常数就可以用点分治。点分治一般用于统计满足条件的路径条数


#17:现场赛写第一题的时候最好拉队友扫一眼再交,防止第一题上头


#18:各种数据无限对,但是一直WA,检查一遍初始化。


#29:前缀是个好东西,很多区间的查询都可以等价拓展成前缀,并查询两个单点。


#20:如果用vector存答案的话,用之前clear一下,即使是声明在函数栈里的也会有奇妙的问题。例如:痛失2017ICPC新疆C一血。


#21:有spj,还非得用Java的题目,尽量用BigDecimal把大数的表打好,真正算法计算时候转成double计算,常数小很多很多。


#22:涉及到位运算一定全都套上括号,否则很可能因为运算优先级挂掉。例如:痛失2017ICPC新疆I题绝杀,并丢了Au,遗憾Ag。


#23:树的题目先想如何做链,然后集成一下。


#24:比较复杂的状压搜索或者类似的数组、概念特别多的题,先在纸上把每个数组的作用写好,不会把自己心态写爆炸。如Codeforces 919F

版权声明:本文为博主原创文章,转载的话评论区留个名就OK辣

ACM竞赛之新人向导 (鉴于这么多人问如何自学)

来自http://acm.hdu.edu.cn/forum/read.php?tid=105&fpage=7 我们学校的计算机学院从去年起开始组织学生参加世界上最具权威性的大学生程序设计竞赛...
  • yuzhiwei1995
  • yuzhiwei1995
  • 2015年07月26日 00:30
  • 1629

关于ACM竞赛的题型分析

一、ACM竞赛介绍及规则 参赛队员可以携带诸如书、手册、程序清单等参考资料,试题的解答提交裁判称为运行,每一次运行会被判为正确或者错误,判决结果会及时通知参赛队伍,正确解答中等数量及...
  • makewei13
  • makewei13
  • 2015年12月05日 15:52
  • 1227

参加ACM比赛所需的基础知识

参加ACM比赛所需的基础知识         一、语言是最重要的基本功                 无论侧重于什么方面,只要是通过计算机程序去最终实现的竞赛,语言都是大家要     过的第一道关。...
  • dreamzme
  • dreamzme
  • 2007年06月12日 05:43
  • 6093

Vue填坑之路

1.规则验证不通过 报错信息:validate is undefined 解决方法:在表单规则验证的时候,要确保ref的值跟v-model保持一致 2.端口号冲突 报错信息:Error: li...
  • qq_34006340
  • qq_34006340
  • 2017年11月09日 10:55
  • 28

我们依旧在追梦的路上-山东省第六届ACM比赛总结

热身赛 这场比赛从结果而言达到了预期(金牌),从过程而言和我的预期相差甚远(打的太乱,个人发挥很差),还好关键时刻队友抗住压力,负责后果真的不堪设想。 热身赛纯粹测机器的,先把A,B,C草草水过(A题...
  • u013451221
  • u013451221
  • 2015年05月12日 19:52
  • 1094

ACM比赛中常见的错误

常见错误 原因分析 Runtime Error 表示程序因为非法内存访问或未处理异常而结束,常见的有数组越界等 Memory Limit Exceeded 表示程序使用的...
  • Hachi_Lin
  • Hachi_Lin
  • 2018年01月08日 16:18
  • 34

ACM 2015 中国赛区时间

2015 ACM/ICPC 中国区五个赛区基本信息 - ACM/ICPC信息站 本文收录2015年ACM/ICPC中国区六个赛区的所有基本信息,包括网络赛、现场赛的时间、地点、安排、名...
  • nickwong_
  • nickwong_
  • 2015年08月12日 01:36
  • 2782

bzoj 2097: [Usaco2010 Dec]Exercise 奶牛健美操 (二分答案+贪心)

2097: [Usaco2010 Dec]Exercise 奶牛健美操 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 305  Solved: 1...
  • clover_hxy
  • clover_hxy
  • 2016年09月26日 21:51
  • 314

ACM竞赛需要注意的一些编程习惯

算法竞赛入门经典第2版(刘汝佳 著)学习心得 (将会不定期更新。。。) 1.不要在用户输入前打印提示信息,比如:“请输入n”,这样不仅不会赢得友好的界面分,还会因此而减分甚至丢掉所有分数,因为...
  • sinat_35803474
  • sinat_35803474
  • 2017年02月19日 23:02
  • 363

Android开发踩过的坑

1.Fresco加载本地图片的问题在小米note 6.0手机上加载裁剪过的图片,发现有一个隐形的Bug,具体我也不清楚,只知道立即对裁剪过的图片地址进行加载的时候,加载失败,需要等待几秒后,重新加载就...
  • u011692041
  • u011692041
  • 2016年10月20日 10:15
  • 591
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ACM竞赛路上亲爱的坑们
举报原因:
原因补充:

(最多只允许输入30个字)