卧薪尝胆,厚积薄发。
something
Date: Sun Oct 04 16:31:25 CST 2099 In Category: NoCategory
二分 分治 正难则反 逆向思维
树要注意根节点的特殊情况。
$MLE$
二分边界
树上倍增根节点深度为 $1$ ,否则会分不清跳出去了和跳到 $1$ 了。 数据范围
数组开小
$long\ long$
$No\ Solution$
多组数据初始化
不用无意义变量名
输入是否排序
$ST$ 表二倍空间
输入正反
换思路
斜率优化必判相等,不然会卡住出不来
自造数据,争取对拍。
先手玩样例
双关键字排序
负数读优
取模
线段树 $set$ 标 $-1$ ,
$1ll<<1$ 防爆
线段树 $pushdown$
数据点分治
不要卡在一个思路浪费时间, $NOIP$ 没有特别难的题
统计增量而不是直接统计全部,这样可以避免清除的复杂度。
根号分治。
按照 $dijkstra$ 算法的规则每次取一个最小的更新其他的,并把它标记为已经被更新了。
图的问题,先求出一棵生成树。
文件名,文件夹。
intreturnint
输出空格。
时间复杂度,空间复杂度。
动态规划可以考虑是否有可以合并的状态,对于状态长度不同的可以用多进制数压起来,还可以考虑某些状态是否有用,是否可以调整状态顺序。
可以开一个桶记录某个状态最靠后到了什么位置然后从那里转移。
可以把这个时候合法的先存下来,等之后有更优的的时候在更新。
先求出一个好求的方案,再把更优的减掉。
期望,算出来每一个的概率然后再线性架起来。
期望 $DP$ ,算出每一个状态的概率然后对于当前转移对期望的贡献就可以计算了。
概率:考虑所有都不包括他的
期望转化为概率。
设一个变量变化一的期望步数,最后把答案累加就是答案了
预先承诺,后来兑现
抠掉什么东西的答案 $\to$ 前后缀合并。
不要在递归里使用全局变量,不然进入子树后会被修改回来之后就不对了。
可以先走一个不回来的,后走一个不回来的,或者中间走一个
对于某一个大小的联通块内含有黑点的最小值为LL,最大值为RR,那么LL和RR之间的所有值都是可以取到的,原因就是你删掉一个点再加一个点黑点个数最多变化一
设两棵小树的直径为 $l_1,l_2$ ,那么加一条边的新树直径最小值为 $\max(l_1,l_2,\lceil \frac{l_1}2\rceil+\lceil\frac {l_2} 2\rceil+1)$
整张图上实际有用的位置是什么。
不合法的转移可能一定不会成为最优解。
转移可以考虑新加入一个的变化
动归有可能先排个序
注意偏序的本质
DP的阶段性质
多组数据读完
最短路有分层的作用
在以 $a$ 最小的前提下 $b$ 最小 $\to a\times maxb+b$
几个数乘起来或者加起来一定有一个数小于等于 $\sqrt[k]n$ 或 $\frac n k$ ,可以暴枚。
连边可以新建一个点
树一个点只有一个父亲
快速幂的时候底数先模一下。
差分。
莫队先扩展再收缩。
线段树分治一定不要忘了叶子节点并查集的撤销。
注意 $long\ long$ 的输入输出
注意图的连通性
前导零
无穷大加爆
可能清空上界是 $m+1$
$\exp$ 求积分 $[x^0]f(x)=0$
多项式开四倍空间
多读题
递归小心同时修改同一个位置
主席树一个位置存多个
线段树合并询问中间某个点要么离线要么可持久化
挂链
返回值
$-Wall,-Werror,-Wextra$
特判
多组数据对拍
某种不要求最大流最大费用最大流当费用为负时直接跳出来
In tag:
Copyright © 2020 wjh15101051
ღゝ◡╹)ノ♡