一句话详细题解+优质题目及其博客(清真代码)链接 (持续更新)+知识点讲解汇总

CODEVS

NOI2002 贪吃的九头蛇 codevs 1746

题解:树形DP,发现当”小头”大于等于2的时候,我们可以让小头们交替地去吃果子,比如son让小头A吃,可以让小头B吃father,让小头A吃grandfather,再让小头B吃grandgrandfather…所以我们发现其实只和”大头”吃那些点有关,所以我们定义dp[i][j][k]表示当前在位置i,i的子树里面大头吃j个,其中位置i的大头吃不吃,于是我们先多叉树转二叉树,然后跑树上DP即可

22ssm的题解

BZOJ

BZOJ2321 [BeiJing2011集训] 星器

题解:这题神了,考场上根本想不出来的解法(不过运气好还是能找规律找出来),显然牵扯到能量,自然联想到能量守恒定律,初始能量总和减去末尾能量总和就是释放的能量,于是我们发现可以定义一个点的欧几里得距离的平方的和为势能,也就是一个点的能量为 x2+y2 ,前势能总和减去后势能总和就可以得到答案了,神题…

popoQQQ大爷的题解

BZOJ 3140 [HNOI 2013] 消毒

题解:这题有意思的,状压+二分图匹配,好好玩儿呀
可以发现,我们可以一层一层地选取,如果我们把一层全部选了的话,只用花费1的代价
由于 abc<=5000 ,所以最短的边最大是 17 ,因此我们把最短的边找出来,作为高,所以我们只需要二进制枚举横着切那些层,然后剩下的所有我们竖着处理,竖着一层一层地切,于是我们把剩下的”压”下来,压成一层,然后跑匈牙利即可233

qpswwww的题解

BZOJ3594 [SCOI2014方伯伯的玉米田]

题解:二维树状数组优化DP,显然对于一段区间+1的操作,我们每次+1的时候,右端点都应该是末尾,否则只有可能让答案变少而不会变多,所以我们只需要定义

dp[i][j] 表示前 i 个数,在这 i 个数

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值