写在前面
我又又又又掉分了
为了追逐梦想,然后成功s在了路上
而且这次考试又和铁一中打。。。
又被虐了QWQ
考场安排
总体:今天考场上分配时间不太好,主要是因为一直在肝T3,然后放弃了一些题目的暴力分,最后T3的思路竟是我其中想的一种,只是我想了10min又给换掉了,人傻了
具体:
- 8:00 – 8:15 做一些准备工作,打了板子,然后全部浏览了一遍题目,
隐隐感觉到了一丝DP的味道,然后感觉到T1和T3比较好写,并且一眼看出来T4是一道状压DP,具体没有怎么看 - 8:20 – 9:00 看T1,并且思考其做法,首先通读题面之后看了样例分析,最后发现了一个规律:一些线段放在一个集合里造成多个联通块(也就是题目中的复杂度不为1)的情况 当且仅当 这些线段至少有2个或2个以上的 线段没有重叠部分,在这时候想到了DP,设了一个状态式子:设 f [ i ] [ j ] f[i][j] f[i][j] 表示当前选了 i i i 个线段产生了 j j j 的复杂度,最后发现推不下去了。。。然后写了个不正确的贪心加了上去
- 9:00 – 10:30 写T3,
考后知道这是一道树上LIS的模板题,但我不会QWQ算是时间很长了,然后在后面的时间里又抽出了点时间又来写,我归结了下,用了几种方法来写,
第一种:树形DP,设 d p [ i ] [ 2 ] dp[i][2] dp[i][2] 表示在 i i i 节点选不选的情况,其中 d p [ i ] [ 0 ] dp[i][0] dp[i][0] 表示不选, d p [ i ] [ 1 ] dp[i][1] dp[i][1] 表示选 ,并且推了一个伪DP式:
d p [ i ] [ 0 ] + = 子 树 内 点 权 值 < p r i c e [ i ] 的 d p 和 dp[i][0] += 子树内点权值 < price[i] 的 dp和 dp[i][0]+=子树内点权值<price[i]的dp和
d p [ i ] [ 1 ] + = 子 树 内 点 权 值 > p r i c e [ i ] 的 d p 和 dp[i][1] += 子树内点权值 > price[i] 的 dp和 dp[i][1]+=子树内点权值>price[i]的dp和
并且从叶子结点向父亲节点回溯,把值赋在儿子上,然后每次只需要对其儿子赋值就行了
但是很快我就证明出这是不对的:当这个节点选的时候,其儿子不大于的这个节点权值的节点根据定义不可能选,但是这个儿子的子树中大于这个节点的权值的点可以选!
如下图:
可以直观地看到,2号节点要想更新1号节点,只能用 d p [ 2 ] [ 0 ] dp[2][0] dp[2