随笔分类 -  题解

摘要:#解题思路 题面 两倍s1变成字符串匹配,用KMP。 KMP预先处理模式串(短串)的$next[]$数组,$next[]$的意思为自我匹配一样的值的下一个的位置。 复杂度$O(n)$ #代码 class Solution { public: bool isFlipedString(string s1 阅读全文
posted @ 2022-09-29 20:20 ChrisKKK 阅读(46) 评论(0) 推荐(0)
摘要:分块吼啊 学习笔记——分块 ~~之前一直不会写分块。~~ 咕到了今天终于写了几个裸题 "LOJ数列分块入门1" 区间加,单点查 线段树很容易,但是要练分块~~更容易~~ 把数列分成$\sqrt{n}$的块 整块的打$tag$两边的暴力 代码如下: 阅读全文
posted @ 2019-11-04 18:52 ChrisKKK 阅读(180) 评论(0) 推荐(0)
摘要:牛客CSP S提高组赛前集训营2 T1 服务器需求 "服务器需求" 假如没有修改 很明显答案就是$max(a_i,\lceil{sum/m}\rceil)$ 带修?? multiset过掉 ~~没开$long$ $long$见了一次祖宗~~ cpp include define ll long lo 阅读全文
posted @ 2019-11-01 11:55 ChrisKKK 阅读(183) 评论(0) 推荐(1)
摘要:CF1187E Tree Painting 换根DP "链接" 换根DP 第一次求出$f[i]$表示染$i$的子树的价值 那么第二次很明显求的$g[i]$表示以$i$为根的话答案是多少 $f[i]=size[i]+{\sum_{s\in son[i]}f[s]}$ $g[i]=g[fa] siz[i 阅读全文
posted @ 2019-10-31 10:38 ChrisKKK 阅读(142) 评论(0) 推荐(0)
摘要:「雅礼集训 2017 Day1」市场 线段树维护除法下取整 "链接" 区间最小值,区间和,区间加,区间除下取整 除数巨大,不好维护 但是可以用一种方法改为做区间减法 $1,1,2,2$这个序列除以$2$下取整为$0,0,1,1$ $2,2,3,3$除以$3$结果$0,0,1,1$ 第一个相当于区间减 阅读全文
posted @ 2019-10-29 11:30 ChrisKKK 阅读(282) 评论(0) 推荐(0)
摘要:EOJ_3653. 她的名字 预处理 组合数 "题目" 发现字符串比较短,才 $2000$ 而且只有问后两位,所以可以预处理 查到$x$后面有$sum$个$y$,且$s_i=x$,$n$是询问的长度 那么$x$和$y$的答案就是$( ^{i 1} _{n 2}) sum$ 所以就预处理枚举$x,y, 阅读全文
posted @ 2019-10-29 08:43 ChrisKKK 阅读(265) 评论(1) 推荐(0)
摘要:CF413E Maze 2D 线段树 "题目" 宽度只有$1$的话怎么做? 用线段树维护一下$dis$表示$l r$区间的距离 那么宽度为$2$的也一样啊 就可以设四个距离 表示左上到右上,左上到右下,左下到右上,左下到右下 这样就可以查询了 阅读全文
posted @ 2019-10-26 17:16 ChrisKKK 阅读(221) 评论(0) 推荐(0)
摘要:Luogu_P2536 [AHOI2005]病毒检测 trie树+dfs "题目链接" 这两个符号比较有意思 可以把所有的串都先建到trie树上 然后用病毒的模式串在上面搜索 处理这两个符号就可以通过搜索次序解决 主要可以看代码 ~~问的是非病毒,WA了~~ ~~一个符号可以不取,又WA了~~ 代码 阅读全文
posted @ 2019-10-23 19:34 ChrisKKK 阅读(147) 评论(0) 推荐(0)
摘要:Luogu_P3435 [POI2006]OKR Periods of Words KMP "题目链接" ~~阅读理解~~ 其实就是B是A的前缀 那么叠加B成为BB,假如A是BB的前缀那么B就是合法 问A的所有前缀的最大合法前缀的和 emmm感性理解吧 那么读懂题面也就可以解决了 KMP的$nxt[ 阅读全文
posted @ 2019-10-23 08:28 ChrisKKK 阅读(118) 评论(0) 推荐(0)
摘要:Luogu_P1850 换教室 DP+期望 "题目链接" ~~题目好长啊,也化简不了~~ 考虑DP 设$f[i][j][0/1]$为从$1$到$i$交换$j$个(不一定成功),当前换或者不换的耗费体力值的总和的期望 先用floyd把任意两点之间的距离求出 然后进行DP 分当前点选与不选进行分类 具体 阅读全文
posted @ 2019-10-21 16:24 ChrisKKK 阅读(87) 评论(0) 推荐(0)
摘要:Luogu_P1365 WJMZBMR打osu! 期望 "题目链接" 题意很容易理解 设之前的连续的'o'个数已经为$x$ 这次也为'o' $(x+1)^2 x^2=2 x+1$ 那么每次的成功的贡献就是$2 x+1$ 假如只有'o'和'x'就很好解决了 但是还有'?'求期望 就设$p[i]$为当前 阅读全文
posted @ 2019-10-21 10:23 ChrisKKK 阅读(81) 评论(0) 推荐(0)
摘要:Luogu_P1297 [国家集训队]单选错位 期望 "题目链接" 虽然是期望,但是每个贡献都是$1$所以也就是概率 $a_i$和$a_{i+1}$要分类讨论 如果$a_i=a_{i+1}$那么明显概率就是$\frac{1}{a_i}=\frac{1}{a_i+1}$ 如果$a_i a_{i+1}$ 阅读全文
posted @ 2019-10-18 21:46 ChrisKKK 阅读(115) 评论(0) 推荐(0)
摘要:Luogu_P4139 上帝与集合的正确用法 扩展欧拉定理 "题目链接" 扩展欧拉定理如下: 那这道题 $2^{2^{2^{\dots}}}\bmod p$ 就是 $2^{(2^{2^{\dots}}\bmod \varphi(p))+\varphi(p)}\bmod p$ 就可以递归求解了 当$p 阅读全文
posted @ 2019-10-18 10:23 ChrisKKK 阅读(144) 评论(0) 推荐(0)
摘要:Luogu_P1072 Hankson 的趣味题 gcd "题目链接" 就是求 $gcd(x,a0)=a1$ $lcm(x,b0)=b1$ 的$x$合法的数量 首先有一个很显然的等式 $gcd(x/a1,a0/a1)=1$ 可以根据$gcd$的性质证出来 那么就剩下另一个等式了 $lcm(x,b0) 阅读全文
posted @ 2019-10-17 17:02 ChrisKKK 阅读(88) 评论(0) 推荐(0)
摘要:CF786B Legacy 线段树优化建图 "Luogu链接" 裸题,区间连点,点连区间 假如直接连边跑的话一定会T 这时候就需要线段树优化建图了 两个线段树 一个树是区间连点的,叫out 一个树是点连区间的,叫in 但是两个树内部连边的方向不一样 如图 假如相反必然就不对了包含关系错了 剩下的就好 阅读全文
posted @ 2019-10-16 19:45 ChrisKKK 阅读(116) 评论(0) 推荐(0)
摘要:Luogu_P2045 方格取数加强版 最大费用最大流 "题目链接" 费用流 把每个点都拆成两个点 两个点之间连一条费用为$0$,流量为$inf$的边,一条费用为$w$,流量为$1$的 然后从源点和$(1,1)$连一条流量为$k$费用为$0$的边 $(n,n)$的第二个点到汇点也是流量为$k$费用为 阅读全文
posted @ 2019-10-15 15:02 ChrisKKK 阅读(101) 评论(0) 推荐(0)
摘要:Luogu_P3304 [SDOI2013]直径 树的直径 "题目链接" 问的是树的几条直径中有几条边相交 设直径上一点到左端点的距离为$lf[i]$ 到右端点的距离为$rt[i]$ 到不过直径上点的最长链长度为$fr[i]$ 明显就是找到两个端点 $lf[x]=fr[x]$且$rt[y]=fr[y 阅读全文
posted @ 2019-10-14 09:11 ChrisKKK 阅读(148) 评论(0) 推荐(0)
摘要:Luogu_P1402 酒店之王 二分图 "题目链接" 明显二分图 但是怎么维护两个 其实可以在匈牙利之前保存下来当前的链接状态 假如没办法把菜和房间都匹配上就还原会当前状态 具体看代码吧 代码如下: cpp include define mp make_pair using namespace s 阅读全文
posted @ 2019-10-12 16:41 ChrisKKK 阅读(109) 评论(0) 推荐(0)
摘要:SP2878 KNIGHTS Knights of the Round Table v DCC缩点+二分图染色 "题目链接" 因为互相仇视的骑士不能相邻 所以先把能相邻,也就是不仇视的骑士连上边 然后询问就化为了求图上有多少个点没有被任何奇环包括 那么这时候就需要几个结论 1.两个骑士不在一个点双连 阅读全文
posted @ 2019-10-11 15:50 ChrisKKK 阅读(131) 评论(0) 推荐(0)
摘要:Luogu_P3225 [HNOI2012]矿场搭建 割点 "题目链接" 这种把点拿走明显就和割点有关系 那么就先求割点 求完割点然后??? 首先dfs每个割点分开的连通块 如果这个连通块没有割点,必然要两个出口 假如有这个联通有一个割点那么一定要放一个,因为假如割点塌了就需要这个点了 假如有两个或 阅读全文
posted @ 2019-10-11 10:44 ChrisKKK 阅读(131) 评论(0) 推荐(0)