noip模拟题
EternalDespair
这个作者很懒,什么都没留下…
展开
-
各种蹂躏——基础dp
(1) LIS: 很久之前就学过nlogn的LIS,不过早就忘了,今天一考,甚至没想到这就是LIS,然后各种蹂躏;维护一个队列:v[];v[i]表示长度为i的采摘顺序的最后一个采摘的西瓜的最小值,这样可以保证v数组是单调递减的。这样在每次查询中都可以根据单调性二分。就将复杂度将为nlogn。(2) LCS: 又是很久之前学过的,不过当时就没怎么搞清楚,现在明白了,就是用一个矩阵求两个原创 2013-07-21 15:29:52 · 8812 阅读 · 0 评论 -
Castle Protecting(dp)
Castle Protecting数据描述: darkkingdom侵占了wisekingdom的st.acerburg,为了消灭敌人夺回城堡,st.acerburg的臣民决定向城堡投一种特殊的炸弹。这种炸弹的毁灭范围是一个矩形(即可以炸一个格子,或连续两个格子,或连续四个格子……可以控制范围,但必须是矩形)。st.acerburg的城堡比较特殊,他只有两层,但是很长。臣民们知道城原创 2013-07-17 16:34:30 · 800 阅读 · 0 评论 -
IOI2005 river treedp
一道有趣的题,很容易就看出是treedp,但是在k个伐木场如何分配给多个儿子的问题上纠结不堪,最后发现,如果将k个伐木场看做是空间,每个儿子分配p个伐木场分别得到的最小代价看做权值,这个分配过程其实就相当于一次背包问题,但因为状态设计的不好这样做背包很蛋疼,就照到左儿子右兄弟的思路写了一遍(很早就想写了,今天练练手),其实这个左儿子右兄弟的思路就相当于做了一次背包,基本一样的,可以用一次n^2*k原创 2013-07-25 10:46:25 · 1175 阅读 · 0 评论