03 2017 档案

摘要:【bzoj1030】: [JSOI2007]文本生成器 首先把匹配任意一个的个数的问题转化为总个数-没有一个匹配的个数 先构造AC自动机,然后枚举每一位的字母以及在自动机上的位置 f[i][j]为第i位在j的位置且没有匹配过任何一个串的个数 然后26^m-sum(f[m][j])就是答案 还有就是当 阅读全文
posted @ 2017-03-31 20:25 karl07 阅读(154) 评论(0) 推荐(0)
摘要:【bzoj4800】: [Ceoi2015]Ice Hockey World Championship N<=40所以如果直接dfs背包会TLE 考虑Meet-in-the-middle 如果把N个物品分成前后A B两段分别背包 分别在A B中可行的方案的花费记录在a b中 答案就是a[i]+b[j 阅读全文
posted @ 2017-03-31 12:29 karl07 阅读(221) 评论(0) 推荐(0)
摘要:【bzoj3172】: [Tjoi2013]单词 先用所有单词构造一个AC自动机 题目要求的是每个单词在这个AC自动机里匹配到的次数 每次insert一个单词的时候把路径上的cnt++ 那么点p->cnt就是以root到p这条路径为前缀的单词的个数 如果p->fail指向了点q,那么就会对q点产生p 阅读全文
posted @ 2017-03-29 21:15 karl07 阅读(385) 评论(0) 推荐(0)
摘要:【bzoj3209】: 花神的数论题 首先二进制数中1的个数最多就是64个 设所有<=n的数里二进制中1的个数为i的有a[i]个 那么答案就是 然后快速幂 求a[i]可以用DP 设在二进制中从高到低考虑到第k位,第k位之前的1的个数是cnt,n总共有len位 若第k位==1 那么 a[cnt+j]+ 阅读全文
posted @ 2017-03-26 03:46 karl07 阅读(232) 评论(0) 推荐(0)
摘要:【bzoj1951】: [Sdoi2010]古代猪文 因为999911659是个素数 欧拉定理得 然后指数上中国剩余定理 然后分别lucas定理就好了 注意G==P的时候的特判 1 /* http://www.cnblogs.com/karl07/ */ 2 #include <cstdlib> 3 阅读全文
posted @ 2017-03-24 22:47 karl07 阅读(186) 评论(0) 推荐(0)
摘要:【bzoj1853】: [Scoi2010]幸运数字 预处理出所有幸运数字然后容斥原理 但是幸运数字是2logn个数的 直接搞会炸 所以把成倍数的处理掉 然后发现还是会T 所以数字要从大到小处理会快很多 我也不知道为什么 还有就是剪枝的时候要开double 不然爆longlong 1 /* http 阅读全文
posted @ 2017-03-22 19:26 karl07 阅读(172) 评论(0) 推荐(0)
摘要:【bzoj2190】: [SDOI2008]仪仗队 在第i行当且仅当gcd(i,j)=1 可以被看到 欧拉函数求和 没了 1 /* http://www.cnblogs.com/karl07/ */ 2 #include <cstdlib> 3 #include <cstdio> 4 #includ 阅读全文
posted @ 2017-03-22 19:09 karl07 阅读(184) 评论(0) 推荐(0)
摘要:【bzoj2751】[HAOI2012]容易题(easy) 先考虑k=0的情况 那么第一个元素可能为[1,n] 如果序列长度为m-1时的答案是ans[m-1] 那么合并得 然后同理答案就是 k很小 而且顺序可以随便交换 排序暴力减去就好了 1 /* http://www.cnblogs.com/ka 阅读全文
posted @ 2017-03-21 19:14 karl07 阅读(143) 评论(0) 推荐(0)
摘要:【bzoj2186】: [Sdoi2008]沙拉公主的困惑 考虑当 gcd(a,b)=1 则 gcd(nb+a,b)=1 所以[1,N!]与M!互质的个数就是 筛出[1,M]所有的素数p[i] 以及逆元 p[i]-1 处理一下前缀积inv[x]= 然后答案就是N!*inv[x] 1 /* http: 阅读全文
posted @ 2017-03-19 23:27 karl07 阅读(166) 评论(0) 推荐(0)
摘要:【bzoj1965】: [Ahoi2005]SHUFFLE 洗牌 观察发现第x张牌 当x<=n/2 x=2x 当x>n/2 x=2x-n-1 好像就是 x=2x mod (n+1) 就好了 1 /* http://www.cnblogs.com/karl07/ */ 2 #include <cstd 阅读全文
posted @ 2017-03-19 20:57 karl07 阅读(222) 评论(0) 推荐(0)
摘要:【bzoj3813】: 奇数国 题意:给定一个序列,每个元素可以分解为最小的60个素数的形式。(x=p1^k1*p2^k2*......p60^k60)(p1=2,p2=3,…,p60=281) 支持单点修改,查询一段区间的积的欧拉函数 mod 19961993(是一个质数)。 线段树维护区间积x, 阅读全文
posted @ 2017-03-19 19:19 karl07 阅读(323) 评论(0) 推荐(0)
摘要:【bzoj2818】: Gcd 考虑素数p<=n gcd(xp,yp)=p 当 gcd(x,y)=1 xp,yp<=n满足条件 p对答案的贡献: 预处理前缀和就好了 1 /* http://www.cnblogs.com/karl07/ */ 2 #include <cstdlib> 3 #incl 阅读全文
posted @ 2017-03-19 17:33 karl07 阅读(211) 评论(0) 推荐(0)
摘要:【bzoj3122】: [Sdoi2013]随机数生成器 当a>=2 化简得 然后 BSGS 求解 其他的特判 : 当 x=t n=1 当 a=1 当 a=0 判断b==t 1 /* http://www.cnblogs.com/karl07/ */ 2 #include <cstdlib> 3 # 阅读全文
posted @ 2017-03-19 16:11 karl07 阅读(153) 评论(0) 推荐(0)
摘要:【bzoj2242】: [SDOI2011]计算器 1.快速幂 2.扩展欧几里得(费马小定理) 3.BSGS 1 /* http://www.cnblogs.com/karl07/ */ 2 #include <cstdlib> 3 #include <cstdio> 4 #include <cst 阅读全文
posted @ 2017-03-19 02:23 karl07 阅读(165) 评论(0) 推荐(0)