- 博客(6)
- 问答 (2)
- 收藏
- 关注
原创 [NOI2014]随机数生成器(模拟+贪心)
【题解】先一步步按题目的操得出序列 然后在方阵中找出最小的数(对于初始方阵是1)的位置(x,y)再在矩阵(1,1)-(x,y),(x,y)-(n,m)中分别找出最小数的位置 递归是没必要的,也不容易找出每个子矩阵内最小的数 可以反过来考虑:1,2,3……能不能依次使用?1肯定可以,2的话,必须在1划分出的子矩阵(1,1)-(x,y)或(x,y)-(n,m)中才行
2015-07-14 11:42:39 1589
原创 [NOI2014]动物园(kmp+递推)
【题解】这里首先定义失配指针f[i]满足:第i个位置的字符与第f[i]位相同,字符数组从1开始 如:aba f[1]=0,f[2]=0,f[3]=1 要求出num[i],只需延f指针上溯,找到所有长度不超过i/2的位置,它的数目即为num[i]可以考虑fail树的思想,用cnt[i]记录从i延失配指针上溯,能遇到的结点数目 找出最大的长度不超过i/2的位置j,则num[i]=c
2015-07-13 22:59:02 1590
原创 [NOI2014]魔法森林(动态加边+SPFA)
【题解】求两个变量构成的最优值,可以考虑限制一个变量,最优化另一个 观察此题,可以得到这样一个思路:假设已知答案中的Ai的最大值不超过x,只需最小化1到n路径上的Bi的最大值 不难想到二分这个Ai的上限x更新方式为SPFA,即,设d[i]为:只考虑Ai然而这样的话,对于每个x,d数组都要重新求 不如我们按Ai从小到大加边,随着加边来更新 BiMax 的最小值,这样d[i
2015-07-13 00:45:55 2732 3
原创 [NOI2014]起床困难综合症(二进制拆分+贪心)
【题解】还是老思路:二进制位运算的题,我们单独考虑每一位,最后合并答案 这道题中:在0~m中选一个数"丢"到那一堆运算里,相当于判断从每一位"丢"下去0或1后,得出结果的高位尽量是1的方案 为了方便,我们直接丢两个数:0000000……000与1111111……111,就可以O(2*n)求出每一位"丢"0或是"丢"1能得到的方案了,并不需要每一位"丢"两次 然后从高位到低位贪心地判
2015-07-13 00:20:27 891
原创 [NOI2004]郁闷的出纳员(Treap)
【题解】Treap水过注意:对于null结点,不能进行 o->s = o->ch[0]->s + 1 + o->ch[1]->s 操作,一定要考虑此问题【代码】#include#includeint ans=0;struct Node{ Node* ch[2]; int v,r,s; int cmp_v(int x) const { if(x==v) r
2015-07-10 19:55:59 712
原创 [NOI2009]植物大战僵尸(最大流)
我冒着明天困屎= = 的危险写了这道题和题解【题解】最大权闭合子图模型,注意同一排里面的植物可以保护外面的若A能保护B,就连边 A->B,容量无穷大,将s与所有正权点相连,所有负权点与t相连,容量都为点权的绝对值还要注意若A,B互相保护,即图上有环,或环能保护一个点,则它们都不可能取!预处理时把它们都删掉。这个预处理只需记录入度,拓扑排序即可。再注意,千万别把s和t也考虑进
2015-07-05 08:08:16 742
空空如也
使用Docker创建镜像时,requests.get超时的问题
2019-05-29
函数传递时,若为f(x=1,x=2,x=3)形式,得到的形参均为一,为什么会这样?
2018-10-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人