大问题

  • 游荡的奶牛(爆搜):把判断越界的条件写在搜索里面要比单独写一个check函数再调用要快......
  • 潜伏者(模拟):做模拟时要一个一个条件认真看清楚了,不要遗漏......
  • 清北考试easy(DP):取模有一定的意义,有的时候整个题目在取模意义下,也不是所有数都要取模
  • 清北考试 haha math(暴力分):要计算数组大小,int 可以开5000*5000,但long long double都是8字节的,开5000*5000会超过128M

          以后每次开数组都要计算大小,不论多么熟悉,1024 B(字节)=1KB   1024 KB=1MB

  • USACO浇地 并查集不能 if(find(u)!=find(v)) 要 if(fu!=fv)
  • 换教室(期望,递推):double不能设成0x7f7f7f7f但可以1e8
  • 换教室(期望,递推):要注意设初值时map[i][i]要特别设
  • 激光炸弹(二维前缀和):128M就要小心,两个5000*5000的int数组也会MLE
  • q(暴力):有时暴力的范围太小,再大些也能过,这时可能测试数据中暴力的数据更大些,如果正解打不出,不要if(n<=.....)直接上暴力就可以了
  • 愤怒的小鸟(搜索/状压):double判断精度,不能用==,用fabs(a-b)<1e-8......
  • 愤怒的小鸟(搜索/状压):在用公式的时候,注意不要除以0
  • (图论,DFS)搜到答案的时候如果没有特殊性质,要return
  • term(数论):快速幂不要忘记ret*=a后要取模
  • HH的项链(树状数组,离线处理):node[i]={Node}(l,r,i)如果Node里面有4个值,这样是错误的
  • HH的项链:数组要开大一些,虽然题目给了1e5但可能要开1e6
  • 油滴扩展(模拟,全排列):#define pai 3.1415926不要手抖打错了
  • 油滴扩展:round(ans)有时会返回一个.....e.....加上int  (int)round(ans)就不会有这种情况,floor round返回值都是double
  • 路障(次短路模板):除了要记录每个点的次短路外,还要枚举最短路上的每条边,加上其两倍求最小
  • 火柴排队(思路题,归并排序):在函数内不能定义long long的数组,只可以定义int的数组
  • 种树(思路题 sweet)while(vis[q.top().id]) q.pop();是对的 但while(...) int u=q.top().id;q.pop(); if(vis[u]) continue;是错的

  • 钟浩曦:400w   1s刚刚好
  • DEV (CE):没有引用某一个库,但是编译过了----> 多写库,最后编译代码到别的地方
  • algorithn定义好了 : x1,y1,x2,y2,next 会CE  -->  X1,Y1,X2,Y2  /  后面加个下划线 
  • long long的输出:WIN32:%I64d Linux:%lld WIN64:%lld/%I64d
  • 根据数据范围猜算法:

          1e18 O(1) O(log)
          1e12 O(sqrt(n)) O(sqrt(n)logn)
          1e6 O(n) O(nlogn) 常数小
          1e5 O(nlogn) O(nsqrt(n))
          2e5 5e5 卡常 O(nlog^2n) O(nsqrt(n))
          5e4 O(nsqrt(n)logn)
          1000 n^2
          100 n^3
          22 状压 2^22 400w   //1s刚刚好
          10 O(n!)

  • long doublescanf("%Lf",&x) 不是任何编译器都可用①cin 不一定靠谱② double y scanf("%lf",&y)x=y;输出:存给double 再输出不会损失精度 long double x
  • pow(e,x) pow类型是double 会损失精度 用powl是一个用long double expl logl都是支持long double   pow用来求小数次幂
  • double保存到第几位是向下,而不是四舍五入
  • long long 在WIN32下跑的很慢,不要全文都用long long
  • 数据清0和初始化:memset只能赋一些特别的值:0,-1,0x3f3f3f3f  不能赋1
  • 数组多,每组比较小,每次memset会超时
  • 数组取模等最后单独查
  • 最后删调试信息
  • 能不用double就不用,能用分数就用分数,会卡精度
  • bool 判断是否出现过 但如果爆空间  bitset慢,但省空间
  • set的begin()和end()不能用来检查是否为空,要用empty()来检查

  • 建子文件夹
  • 计算空间复杂度
原文地址:https://www.cnblogs.com/lcan/p/9655581.html