Think twice , code once!
并查集初始化!
多组数据把每一组读完,尤其是在读取的过程中就已经找到答案
看清有向图还是无向图
不要压行,这不是游戏
不要把问题想简单了/复杂了导致结果不正确
方法不唯一,不要卡死在一种方法上,也不要摇摆飘忽不定
不管拿到什么题目,先想十分钟有没有什么规律或性质,往往找出规律、性质就能相处相应的算法。
去背几个质数,hash的题一定写双哈希甚至三哈希,今年人多,CCF估计都会卡你。19260817之类的不太稳或者直接unsigned long long
复习tarjan 复习线筛 背诵线性递推逆元
运算明确优先级,没事多加几个括号
小心卡常,不要用cin
只要数据范围小,退火算法搞一搞
区间开始结束坐标i,j搞清楚,什么时候+1,什么时候-1
最大最小值开大点/开小点
看清时限,数据范围。计算好复杂度,实在不行暴力也交上去
不要自己写快写,要遭的
注意int转化string时,不可以直接val+’0’。不可以!!!!!!
不会就乱搞,不能不交代码上去
dijkstra一开始不标记为false,spfa出队时标记false,细节,不要打错了调试很久
注意数据范围int 还是long long
tarjan不要忘了把x点的vis标记为false
头文件!!!!!
tarjan强联通分量和割点与桥的区别!!
位运算优先级问题!!!
一句话说康托展开: 这个数所在的位置减一的阶乘乘上序列后面比这个位置的数小的数的个数。再把每一位这样算了以后加起来。注意,最高位在数组中的地址是1!!! 逆康托展开就是除,余多少,这一位就是多少+1,如果这个数已经被用了,往大处找
inv[1] = 1;
inv[i] = (p-p/i)*inv[p%i]%p;
upper_bound>
lower_bound>=