La Vie en Rose
내가 느끼는 반짝임처럼
끌리면 이끌려 na na now
바로 지금 na na now
I don't wanna make it blue
상상해봐 너의 la vie en rose
———IZ*ONE
准备在联赛前看完我所有的博客
于是每篇写一个小小的一句话总结
DP
上升序列
主要是要注意最长上升子序列的nlogn求法,即相当于是维护结尾最小元素,二分插入元素,以及前导0的处理方式。
但是一般不会这样写,会直接和栈顶比较然后如果比栈顶大就更新栈顶,否则再去二分查找位置。
股票市场
其实这题的背包确实很明显,但是建模也不是很容易看出来。背包的容量随着每一天买卖完后进行了变化,而价值也计算的是两天之差。
连通能力
确认过眼神,是我看不懂的题了TAT
玉米田
这个超级入门状压还是会做的幸好qvq。
地图类状压三部曲:预处理合法状态、预处理第一行、与原地图比较和合法状态两重判断后转移
互不侵犯
这个也很裸,差不多的,多预处理一层need,转移也多了一层而已
炮兵阵地
这个复杂了一些,用到了映射存状态,细节也很多,但是状态定义还是没有变。现在也不考这种状压了,太套路了。
消失之物
dp套着容斥考是比较难考虑全状态的,统计答案用到了逆向思维,用它去填充这一部分等价于用其他的物品去填充剩余部分
Mine
现在来看这个题还是推不对,有几点,第一是1个炸弹要分左右两边,第二是想不到可以直接知道的地方直接推,不知道的地方推所有的方案。还有一些细节,什么起点不能左边有炸弹,终点不能右边有炸弹。
杆子的排列
后来看紫书的数学部分的时候才发现是紫书上的题,但是这个状态定义真的很妙,转移也简单地分成了三种情况。
周年纪念日
终于推对了一次。树形dp是真的很喜欢在点和边的贡献上玩花样,尤其是这种统计全图答案的题啊。
据说这叫换根法?因为既dfs了子树对根的贡献,又用了根对子树的转移。不了解。
子串
妙啊~
p这一维真的是太令人舒适了,直接解决了本题最困难的问题,同一个匹配B的串的多个拆分方式。
而这又给了一个提示,往往题上的限制条件会被纳入状态定义的维度中。除了上一句提到的还有。k个子串的限制
飞扬的小鸟
看这道题有点蜜汁混乱,就是关于01背包和完全背包,于是我决定恶补一下
好吧问题解决,二维的01背包可以正序写。看来还是理解不深刻在背啊。一维的01背包不能正序写的本质原因是什么?
是阶段的问题!j-w[i]是第i-1个阶段可以用来更新第i个阶段的j,然后j-2*w[i]时j-w[i]已经计算过了,变为了第i个阶段。又是第i-1个阶段更新第i个阶段
但是正序的话j-2*w[i]是第i-1个阶段,j-w[i]也是第i-1个阶段,这不就凉了吗
形象一点的解释在这里
换教室
这个期望dp其实好像也不是很难啊qvq然而是t3.。
算了我昨天才被一个裸得一丝不挂的概率dp教做人了,感觉我一直不是很能掌握这种dp的定义然后转移很混乱,或者是有的时候在拿概率算有的时候在拿期望算?
于是我决定现在再去研究一下,然后做一道期望/概率dp
做了。。好水啊,感觉难的打击信心水的也很
干脆找时间把01的这篇看了吧。。
逛公园
去年的T3,感觉也不是很难啊。但是记忆化搜索我写的真的很少很少很少,感觉自己也没怎么分清楚了记忆化搜索和dp的一些细微差别
于是又开始恶补
这篇洛谷日报写得太好了%%%%
感觉这个复习计划快演变成好文推送了??
想去写一道入门的记搜,至少找一下感觉
宝藏
嗨呀居然推出来了这个dp。。上面都没几道能再推出来
虽然我推这个把层数也设成了状态 但是完全不影响 可能是受了上面记忆化搜索的影响所以推的挺快的叭
但是我看我的写法里面好像没有记忆化诶..但是已经实现了减少状压dp的硬伤——状态数量了也OK
遗失的二叉树
这个区间合并的思想可以说是非常实用了,比较标准的区间dp的感觉
在大区间中间找一个点,判断以这个点为中间结点的两个小区间是否合法,以及这个中间结点和大区间是否冲突
Average distance
很裸的树形dp,像之前提到的,在边上统计。
transaction transacation transaction
其实不难诶,但是我又没有想到。这个dp+贪心其实是很好的思维方向,最小成本,最大价值。
但是我觉得是不好想到的。
突然想起了那道最短路的最优贸易,其实也是在分开维护成本和代价,然后相减贪心求解。
写到这里突然发现我把最优贸易咕咕咕掉了,赶紧去补上
Y
这是唯一一篇我看着很舒服的图 因为我画的图都太魔性了
正难则反
ZYB's Tree
妙啊!!!!!!!!!!!
这个应该也算换根法?我发现这类题的特征一定是一个答案想要计算出来既要知道子树的贡献又要知道父亲的贡献
所以套路就是先子树后父亲
往往是用子树的一些已知的条件去做第二次dfs
而这个题也类似。但是情况往往也有重复的。
比如这个f[u][j-1]-f[v][j-2]其实也不容易考虑到
Big binary tree
emmm这个题遇到了我是绝对做不来的 离散化 并利用二叉树的性质
Magic boy Bi Luo with his excited tree
太困难了 放弃
矩阵
当时考场上调出来的,再看一下还是确定能做出来吧,毕竟也不复杂就是细节
逆序对统计
从贡献的方式考虑转移顺序
好记的字符串
两种转移方式其实都很好想,注意一下是两种方式都可以预处理出修改后的状态
校长的烦恼
看了这道题的集合用二进制运算突然有个脑洞
是不是^等价于减法,|等价于加法。那其实那个题根本不用写得那么复杂
m0就是有1个人可以交的课 m1就是有2个人可以交的课
s0^m0就是减去现在有1个人可以教的课 (s1^m1)|m0 就是减去有两个人可以交的课再加上有一个人交的课 s2|m1就是加上有两个人可以交的课
woc我简直天才本才 woc我以前真傻,真的
Twenty questions
记忆化搜索+状压,边界很简单,但是这个转移真的很迷
Hacker's Crackdown
二进制子集枚举
for(int s0=s;s0;s0=(s0-1)&s)
相当于忽略0后不断减1。
Mega Man's Mission
每次遇到统计方案数的dp其实都能很快推出来但是总不知道答案是怎么统计的或者会不会漏的
然而其实只要按着从小到大的推就好了。而一般统计方案数的题都有f[0]=1。而很多位同时转移的时候比较少,但是也有比如上面的好记的字符串
因为大多数状压都是枚举了所有状态的,所以每次只需要转移一位,再后面总会再枚举到这个转移后的状态。
Robot Dog
看的时候就觉得不对劲,果然有个地方写错了TAT 约分的时候少乘了个son[i],居然没人发现诶。。。
然后这个题真的是很妙,也给了一个警示,就是思维不要被那个顺序局限了,可能你需要的只是预处理。这个预处理套预处理最后找到一个O(1)的计算方法是真的很妙了。
LIS的数量
真的看不懂了,一头雾水,可能当时也没弄透彻吧,明天找01问问
老大
树形dp+二分
花园
省选-级别的状压了。。太困难了。
看了半天只有一个感悟 还可以把不符合条件的点当做符合条件的点看 然后同样的dp计算方案数
纸牌游戏
这个概率dp是很行云流水地就做出来了,又是记忆化搜索
危险的组合
还有一种做法是直接容斥 这又说明很多和数学挂钩的方案数其实也可以用dp做 又比如前面的那个杆子的排列 其实后面的咕咕咕也是
咕咕咕
也是数学 当时真的是一点也没往这方面想 f[i]=f[i-j]*C(i,j)这个都可以当结论背了 前提是要1和0的位置无关
小迟的锦标赛
f[i+1][j+1]+=f[i][j]*p[i+1][j] //成功
f[i+1][j]+=f[i][j]*(1-p[i+1][j]) //失败
等公交
f[s+t[i]]+=f[s]*p[i]是很好推的
但是答案统计是等的时间*等这么长时间的概率 等的时间从T开始算的话那应该是(i-T) 然后概率就是那个时间段来车的概率
这个上界也比较玄学
数学
余数之和
妙!都不敢相信当时看懂了过后自己是怎么推出来的。。只能说确实花了很长时间钻研这个题吧
然后第一句求r那也是看了半天,其实都是为了防超过边界n而已
Agent1
看完这道题信心暴涨 觉得自己啥规律都能找出来23333
其实是因为只用到了高一的一点数列的知识 然后组合数那个又是众所周知嘛
日常
这个题我已经看不懂了 但是我还是看了一下错排公式
D(1)=0 D(2)=1
D(n)=(n-1)*(D(n-1)+D(n-2))
推导:先放第n个元素在第k个位置上,再放第k个元素。
此时第k个元素有两种放法 如果放在第n个位置 剩下的n-2个元素就有D(n-2)种放法
如果不放在第n个位置上 那这个n-1个元素合起来有D(n-1)种放法
Candy
这个题其实也蛮好的 到了最后我以为还要求逆元其实根本不用 因为能化成这样说明10n-1一定有9这个因子,直接弄除数里面去就行了。
这也提醒了快速幂的多种用法
Visible Lattice Points
这个题也蛮经典的了 其实模型还是很容易看出来
The Luckiest number
一个重要结论!!!
axΞ1(mod n)的最小x一定是phi(n)的因数