2019.12.summary

2019.12.6
BZOJ4726: [POI2017]Sabota?
只想到了带log的二分做法,听说5e5要卡常才能卡过去
然后翻题解,发现有O(n)的dp做法,感觉这个状态设计还是挺合乎逻辑的,却没有想到,说明这一方面很有问题啊
dp[i]表示i没有成为叛徒,最小的x,dp显然
然后最后把子树大于k的状态取一个max


2019.12.14
BZOJ3812: 主旋律
好题!!!对着题解yy了两天
乍一看往往都是没思路的,但是不太好求的计数可以想一下容斥?
然后容斥还是不太好做,可以想一下普通的生成子图的dag计数?
然后推广过来
最后f数组和g数组都是容斥来求……其中g数组就包括了f的容斥系数
细节就是g数组直接求会重复不好求,要固定一个点,然后枚举这个点所在的强连通分量是哪些点构成
代码短小,细节多多(流泪

CF285E
首先可以看出来是容斥,用一下二项式反演把恰好变成至少
然后dp计数,我们要强制至少选了j个好位置
如果一个位置不选我们就先不填他,最后直接乘阶乘,防止之前填了占用后面的位置
也就是说我们填到第i个位置,填这个位置时只用考虑i-1和i+1有没有用过
但是如果状态里记这两个的话只能隔着一个转移???
那我们就记i和i+1有没有用过,然后OK了


2019.12.15
BZOJ1233: [Usaco2009Open]干草堆tower
如果之前把这题做了,D2T2肯定就秒了……
自己想的话只能想到n^3的做法……
如果一种状态没法优化,那就换一种状态设计啊
需要一个结论,结论虽然不会证,但是感性理解一下挺显然的?
最后一层最小的层数一定最高
然后dp[i]表示i结尾的最后一层宽度最小是多少,然后就可以单调队列优化到O (n)的了
自己还是学的不扎实

BZOJ4013: [HNOI2015]实验比较
题目真啰嗦,显然相等的量用并查集连一起
然后图就变成一个环或一个森林,环判掉
森林就dp计数
f[i][j]表示子树分成j个不相等的段的方案数(一开始竟然忘了还能相等23333),然后组合数学算一下方案数
注意这里你要考虑清楚j段包不包括这个根,我一开始搞混了WA了一个下午,晚上想明白了把两种写法都A了


2019.12.16
BZOJ4011: [HNOI2015]落忆枫音
我连第一步自己都没想到,自闭了
一开始dag情况是所有点的入度乘积啊
然后加一条边以后先也这样算,然后减去不合法的
不合法的方案就是对于每一条y到x的路径,其他不在这条路径上的入度乘积,感觉还是比较显然
然后这种情况下我这种菜只会枚举路径,没想到可以dp统计,f[i]表示y到i的所有路径,不在路径上的点入度乘积的和(有点绕)
可以从其他状态转移且无后效性的应该多往dp上面想


2019.12.19
BZOJ4007: [JLOI2015]战争调度
神题……dp+暴力
直接状压2^1024?
发现每一个叶子结点只对他到根这条路径上的点有影响,然后左右子树不影响
所以我们可以每一个每一个链的做,然后左右子树那里合并就行了
这个复杂度分析是真的nb,贴个题解吧https://blog.csdn.net/vmurder/article/details/45146301
注意每次dfs到一个点dp数组要清空,因为前一种情况它已经给父亲合并上去了,这是一种新的状态


2019.12.20
CF1271D
贪心题,用到了点类似dp的东西?
reg[I]表示I轮结束以后还最少需要多少兵力打完全部
reg[n]=0
reg[I]=max(a[I+1],reg[I+1]-b[I+1])
然后模拟每次加bi的兵,一减就是这一轮多的兵
搞个堆维护全局的价值然后选就行了?

CF1271E
首先肯定不能暴力算啊
发现如果乘以相同次2
x222……2 到(x2+1)*2+1)*2+1)*2+1)之间的都包含x的
然后发现对于同奇偶的数,出现的次数是单调递减的,所以分奇偶二分2次


2019.12.21
BZOJ4518: [Sdoi2016]征途
往往方差式子都是要展开的,然后斜率优化可做到O(nm)
听说可以凸优化/wqs二分做到O(nlogK)?以后在学习吧


2019.12.23
BZOJ4890: [Tjoi2017]城市
枚举删哪条边,然后两边都选重心连显然


2019.12.24
BZOJ5337: [TJOI2018]str
题目槽点太多,实际上求的是生成的串是原串的子串,最后还要取模

BZOJ4919: [Lydsy1706月赛]大根堆
趣题
仿照链式的lis做法
树形的我们加一个启发式合并即可?


2019.12.25
BZOJ3864: Hero meet devil
复习了dp of dp,就是像lcs数组可以查分以后状压dp
预处理出转移即可
同TJOI2018party,那题还要限制不能出现三个连续的单词,还要再加一维限制一下


2019.12.28
CF940E. Cashback
只想到了n^3的dp,囧
发现若[k/c]=[(k+1)/c]我们就肯定选[k/c]啊,也就是说我们选的长度一定是c的倍数
然后2k/2c和k/c是一样的啊
所以我们要么选长度为1,要么为c即可
所以dp+rmq即可,O(nlogn)


2019.12.31
BZOJ1426: 收集邮票
期望dp,比较显然
但是有一个trick,第i次需要i元钱
我们就假设每次买需要一元钱,然后每次买完给剩下的所有的再付1元钱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值