• 一些奇怪的坑+好东西


    之前LCT的那个坑点集合 由于我 太能叨叨 弃掉了 于是 新开一个QAQ

     
    ——STL——

    1.memcpy最后加的sizeof要么写整个数组要么写sizeof(int)*x 写位置可能会出一些奇奇怪怪的锅...

    2.奇奇怪怪的编译错误可能是数组开太大内存崩了...

    3.lower_bound(begin,end,val)需要随机访问迭代器,也就是set和map之类的会退化成nlgn 它们需要使用set.lower_bound(val)

    ——字符串——

    1.多组数据/弹出尾部 注意%s输出的时候可能会输出奇奇怪怪的东西(丢了100分的愉快

    ——数据结构——

    1.ST表 注意溢出 log是一个非常慢的运算 经检测至少是 lglg级别 所以尽量预处理

    2.LCT splay 的时候 注意更改父亲的顺序

    3.删掉单个元素可以考虑维护前缀后缀合并 或者 分治去除当前区间的套路

    ——树——

    1.树上极小联通森林距离和的两倍=dis(i,i+1) + dis(1,n)

    2.强制一条边的最小生成树 可以直接求最小生成树然后rmq

    3.无向图dfs树没有横叉边

    4.注意如果有fi<i的条件时 可能可以通过dfs遍历前后添加删除贡献维护答案

    ——强制转换——

    1.(ll) 可能不是强转一整个柿子 有待研究

    2.容斥的时候注意-1/1乘上加的时候 要转longlong 因为-1+mdn不影响但是三个mdn级别相加就爆掉了= =

    3.define有时候会锅 所以莫名其妙的锅可以试试吧define改成函数(然而函数慢到家)

    ——数论——

    1. i的余数求和 和 i求和的余数 不是一个东西

    2.指数不能直接取模 如果是质数 可以通过费马小定理解决

    3.当数论题觉得写得没问题的时候 注意是否中间爆了longlong

    4.如果要对一个玩意取模 然后乘逆元爆longlong的话 可以考虑把模数变成 p*n 然后直接/n 【真实的黑科技】

    5.容斥系数一定要算对啊喂!因为这个爆了30分QAQ

    根据某神犇的提醒 如果不需要取模的情况下最好加上abs 可以避免脑残还可以避免0.00000输成-0.00000的情况

    ——多项式——

    1.对于dp[x*y]=dp[x]*dp[y] x(g^i) y(g^j)

    可以通过用原根映射到 dp[i+j]=dp[i]*dp[j] 然后可以做循环卷积

    2.如果非要用ntt来做fft的题的时候 注意要把模数设到 最大的答案以上才可以

    3.将图定向为DAG的方案数为$(-1)^n*P(-1)$P为色多项式

    4.无向连通图计数

    5.如果求多项式1~n次幂的第n项和(之类的) 常见套路是bsgs(注意实现)

    6.可以先强制个数然后最后补组合数

    7.maxmin卷积可以考虑转化为计数卷积统计答案

    8.在求inv/ln/exp的时候一定把答案数组清干净了再传进去/px

    ——计算几何——

    1.记得要设eps = =

    2.注意逆时针还是顺时针

    3.极角对2pi取模最好的区间是[0,2pi)

    ——实现——

    1.凸优化二分记录答案记录的是二分的权值 最后再进行一次操作统计答案 不可以直接计算答案

    2.想清楚到底是!还是~还是啥都没有...死惨.jpg

    3.对于全局组合数的实现可以直接按照指数生成函数的方法 过程中直接*inv 最后整体*fac

    4.注意位运算为下标的数组清空要清到2^i-1

    5.多组数据清空尽量用memset(a,0,n+1<<2)

    ——优化——

    1.DP优化先列出方程 可以通过一些相同的转移合并 例:PKUWC随机算法

    2.随机序列前缀/后缀 最大值/最小值 期望个数为O(logn) 也就说对于枚举+二分来说 把枚举放到前面 然后先特判再二分 这样的话可以降一个n到logn

    3.对于容斥不是很好写式子的情况可以考虑直接维护容斥的答案

    4.DP想不出来的时候想想是否排序顺序可能会影响,一些DP是离散的但是换一种排序方式就会变成连续的可以维护了。

    5.快速计算最长合法括号子序列 n-sn+2minsi

    ——题面——

    1.细节!!!比如说sum_{j=1}^n注意j=1!!!(来源PKUSC2018最大前缀和= =)

    2.数据范围!!!注意边界0 或 n的特判!!!(来源PKUSC2018真实排名)

    ——交互——

    1.本地测试直接把代码复制粘贴到grader后面然后编译测试就好啦

    这里也成为了一个记录我的锅的地方= =

    无向边开两倍!!!!

    输出前(+mod)%mod!

    数组大一点!!!别只大1!!!

    数组清空注意memset会不会死!!!

    freopen一定打对!!!

    暴力不要想当然!!!也要看好复杂度开对数组!!!

    模数啊!!!一定看对了!!!

    读题!!!看清楚再写!!!

    对拍!!!正式比赛一定要对拍!!!

  • 相关阅读:
    iOS基础
    iOS基础 ----- 内存管理
    NSAttributedString 的一些基本用法
    node安装使用
    docker常用命令
    docker lnmp
    easy-wechat
    composer
    center7系统搭建lnmp
    xammp环境配置
  • 原文地址:https://www.cnblogs.com/hanyuweining/p/10321862.html
Copyright © 2020-2023  润新知