
暴力,根号算法等
文章平均质量分 62
ZLTJohn
这个作者很懒,什么都没留下…
展开
-
[51nod1597] 有限背包计数问题
题目描述你有一个大小为n的背包,你有n种物品,第i种物品的大小为i,且有i个,求装满这个背包的方案数有多少 两种方案不同当且仅当存在至少一个数i满足第i种物品使用的数量不同 1<=n<=10^5 你需要将答案对23333333取模分析我们发现后面的物品只能取很少,考虑一下根号算法。 对于前√n种,可以直接做多重背包计数DP。多重背包计数DP计数可不能二进制拆分··· 设f[i][j]表示做原创 2017-04-07 16:30:17 · 964 阅读 · 0 评论 -
[JZOJ5027]【NOI2017模拟3.25】历史行程
题目大意给一个长度为n的01字符串s,还有m个询问,每个询问有两个数l,r,问s的前缀s[1..l],s[1..l+1]…s[1..r]中的任意两个前缀的最长公共后缀是多少。 n,m<=100000分析首先可以把s反过来,这样就是问后缀的lcp了,询问记得也要反过来。 考虑弄出一个sa。 对于一个询问[l,r],答案是什么呢? 就是rank[l]..rank[r]按大小排后,即l~r所有位置原创 2017-03-29 22:08:43 · 924 阅读 · 0 评论 -
[JZOJ5037]【NOI2017模拟3.30】轮回
题目大意给你n个点,m条边的无向图,求长度为4的环的个数,环要保证4个点都不同。 n<=50000,m<=100000分析考虑暴力做嘛。 枚举一个点,然后让他往外跑2的长度,对于走到一个相同的点x,记次数为cnt[x],答案可以加cnt[x]*(cnt[x]-1)/2。最后答案除4。 怎么暴力才能保证复杂度呢? 考虑一个套路: 有个点i,比它度数大的点最多2m−−−√\sqrt{2m}个。原创 2017-03-30 22:09:06 · 721 阅读 · 0 评论 -
[CF725E]Too Much Money
题目大意有个人有n个硬币,每个面值为a[i],要想凑够c面值。 他每次从剩下硬币中取出一个面值最大的,满足它的面值加上之前选的不超过c。 现在你要证明他的方法是有问题的,你在原来基础上给他任意面值(正整数)任意多个硬币,让他的方法凑不出来c。 求你给出硬币的和的最小值。数据保证解不为0。 n,c<=200,000 CF机子2秒时限分析一个性质:你只用给他一个硬币就够了。为什么呢?假如你给他原创 2017-03-16 16:55:09 · 710 阅读 · 0 评论 -
[arc075f]Mirrored
前言老感觉栋栋的程序有点迷…怎么只枚举到1e7题目大意给你一个数d,要你找出有多少个n,满足rev(n)=n+d,rev就是n的十进制下翻转(忽略前导零),比如“12340”翻转成“4321”. d<=1e9解题思路化一下方程,rev(n)-n=d。 设ws(x)为x在十进制下的位数,s[i]表示n的第i位的数字,那么我们可以写成 ∑i=0..ws(n)−1(s[i...原创 2018-02-21 12:42:45 · 460 阅读 · 0 评论 -
[JZOJ5555]Password
题目描述 a[1][i]<=1e4,n,m<=1e5解题思路一眼似乎不可做。随便搞个数据打个表找找规律,发现除了第一行,第i行和第i+2行是一样的。 考虑一种权值为一种颜色。 那么问题变成了询问一个点的前面有多少个和他一样的点记为cnt0,或者询问一个点之前,次数大于等于cnt0的其他颜色的个数cnt1。 考虑分块。 考虑维护前i个块内的每个颜色x的cnt0[...原创 2018-03-02 20:24:55 · 689 阅读 · 0 评论