![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OI
文章平均质量分 81
sjwk2017
这个作者很懒,什么都没留下…
展开
-
CQOI2016题目&CQOI2016题解&不同的最小割&K远点对&手机号码&密匙破解&路由表&伪光滑数
良好的心态是成功的一半。 ------xinyue CQOI 游记 题目 良心题解原创 2016-04-12 15:43:02 · 1259 阅读 · 2 评论 -
bzoj2809 apio2012 派遣
直观思想是要找到以每个点为根的子树里,最多能有多少个节点薪水和不大于M,也就是要去把最小的点统计起来,乍一眼像是一个维护最小薪水的可并堆,但是考虑到必须要有出堆操作来使时间更优,而出堆元素越大越好,综上,维护一个子树中最大薪水的可并堆。DFS到一个点x时,先递归处理子树,再一个个合并儿子节点所代表的堆,并且在合并后进行不断的pop操作来删除超额节点,最后录入x的信息,每次去个max即可。代码如下。原创 2016-04-13 00:28:34 · 1382 阅读 · 0 评论 -
CQOI2016 伪光滑数 可并堆+搜索
大意:(不好描述,看题目吧) 时间复杂度,一定是要依托于k来计算,看似要枚举的东西很乱,细细的规划一下,可以想到把他们以一个二元组区分(p,size) 表示一个数的最大素数为p,且为size个素数相乘,一开始预处理,就可以求出2-127这31个质数的最大size,即 pi^size[i]>=N(size[i]取到最小)(这样能保证之后的所有状态的权值都是小于N的),一开始,我们的状原创 2016-04-13 16:38:11 · 707 阅读 · 0 评论 -
bzoj2811 apio2012 守卫 guard 贪心
题目意思很好理解(为什么我会想到查分约束QAQ) ,正解居然是贪心(apio和noi/noip系列确实还是赶脚不一样) 首先要做的是把一定没有忍者的区间删除。用线段树操作比较方便,之后给每一个没被删除位置(从1---n)一个新的编号, 为了将读入的区间重新表示出来(即要使读入的L,R都应该在没被删的地方),假设区间为(L,R),如果L所处被删,自然应该去找L右边第一个没被删的,R则为左原创 2016-04-13 23:49:11 · 1719 阅读 · 0 评论 -
apio2007 动物园
第一眼就看成网络流了ORZ,这时间让人恐惧.......... 再仔细看题,发现和一个小朋友有关的围栏只有5个,这是个非常小,且值得注意的数字,不由得会想到状态压缩,发现O(n*2^5)好像还真的挺搭。看题解的蒟蒻强行解释一波.......那么很块能想到状态 f[i][sta] (0 转移方程不难推出: f[i][j]=max(f[i-1][(j>>1)&31],f[i-1][(j>原创 2016-04-13 00:37:12 · 1432 阅读 · 0 评论