题解
hanyuweining
明日はきっと 明日はきっと 仆が世界の中心なので
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CF1083E The Fair Nut and Rectangles
传送门 记麻麻我终于学会斜率优化了TAT 孙神一眼切是个dp然后我就推了发斜率优化竟然对了诶嘿嘿 然后直接斜率优化维护下凸壳就吼了啊qwq 【别忘了先排序= =||】 又是忘了开longlong的一天doge 斜率优化大概是会推了= =+ 又一个flag立下了= =+ #include<cstdio> #include<cstring> #incl...原创 2018-12-11 15:48:09 · 463 阅读 · 1 评论 -
BZOJ3160 万径人踪灭
传送门 FFT好题~ 我们观察一波性质 首先 回文的子序列一定是 j+k=i 其中j和k分别是两个下标 然后i是固定的 这玩意看起来是不是就很像卷积= =+ 我们要求的是f[i]就是固定值是i的时候两侧的相同字符对数 然后呢 我们分别把a和b做一遍 a就是把一个位置上是a的赋成1然后FFT自乘 b同理 a,b对应系数相加就得到了f[i] 求答案就是枚举所有i求2^f[i]-1 但...原创 2018-12-24 19:58:07 · 182 阅读 · 0 评论 -
CF917D Stranger Trees
传送门 非常舒适的一道题 趁机学了一发拉格朗日插值2333 貌似是WC2018讲的题 我们对于在原图中存在的边 记为x 没出现的边记为1 然后矩阵树定理求出行列式 对应的x^k的系数就是跟原图有k条重边的方案数 显然带多项式进去不好算 那么我们拉格朗日插值 对于x分别算1-n得到了n个值 然后插值回来就可以了 拉格朗日求系数我也没有找到好的博客 于是找到学长求助 结果他们说的我很懵...原创 2018-12-24 15:23:36 · 357 阅读 · 0 评论 -
BZOJ 4516 [Sdoi2016] 生成魔咒
传送门 心态崩了++ 后缀自动机板子题[考场上要是不会后缀自动机就崩了T^T] 可以看出 每次答案的贡献就是和原来本质不同的子串数量 根据SPOJ7258我们可以得到 本质不同的子串数量可以通过建出自动机 树形dp解决 我们需要知道的就是 连向它的那个链 就是我们建立自动机的时候的那个找的p 直接求一下就好了 另外的理解方式就是我们要求本质不同的前缀数量 那么就是parent树上l...原创 2018-12-18 15:36:20 · 169 阅读 · 0 评论 -
Code Festival 2017 Qual B E Popping Balls
传送门 神仙计数! 我的计数真的好差啊= = 不过这个题真的神仙 看了题解把整个过程在草稿纸上重写了一遍才想明白= =(一张草稿纸就没有了!!!) 计数的关键就是在于 枚举的有效性和独立性【不能重复计数】 然后我们就来思考一下这个题 1. 确定t 我们重定义t为第一个取出的蓝球的位置 那么t的选择区间是[1,a+1] 分别对应[a+1,1]的时候取出 枚举区间:[1...原创 2018-12-29 08:24:32 · 260 阅读 · 0 评论 -
AGC003[BCDEF]题解
2018-12-28 有点累EF明天再写叭=v= 2018-12-29 update EF B - Simplified mahjong 可以注意到 一段连续的非0序列都可以凑出 就是显然%2=0的可以内部配完 然后%2=1的可以随便向两边传递这个1(就是和旁边的配对改变自己和配对的奇偶性从而使自己变成%2=0旁边变成%2=1)于是就按照0分割统计答案就行了qwq #include&l...原创 2018-12-28 20:52:37 · 259 阅读 · 0 评论 -
SPOJ7258 SUBLEX - Lexicographical Substring Search
传送门[洛谷] 心态崩了我有妹子 靠 我写的记忆化搜索 莫名WA了 然后心态崩了 当我正要改成bfs排序的时候 我灵光一动 md我写的i=0;i<25;i++??? 然后 改过来就A掉了T^T 大体做法就是 一个点出发的本质不同子串数量应该是就是所有添加字符的转移和其余选一个空串的转移 所以直接建出自动机然后 我的做法是直接记忆化搜索就可以省去建树/排序 因为所有子串必定由转移构...原创 2018-12-18 13:20:51 · 248 阅读 · 0 评论 -
SPOJ1812 LCS2 - Longest Common Substring II
传送门[洛谷] 多个串!1811的升级版~ 其实做法很相似 我们只需要对第一个串建立SAM 然后 每个串在上面跑 由于是求所有字符串交的LCS 我们只需要记录每个节点与当前串匹配的max和之前所有串匹配的min max是需要子树更新的 min要记得和当前的max还有len[节点最大长度]取min 然后这样就做完啦。 (才不会说我读的是所有字符串并的LCS 这个的做法可以直接跑一个然后...原创 2018-12-18 09:49:15 · 230 阅读 · 0 评论 -
SPOJ1811 LCS - Longest Common Substring
传送门[洛谷] SAM板子题?(可惜我还是不会) 大概就是能匹配就一直往下匹配 不能匹配就跳parent 调到能匹配为止 跳到根了就重新开始 最开始太蠢了非要写递归版 写着写着发现不知道我要写啥了T^T 果断换循环。。 #include<cstdio> #include<cstring> #include<algorithm> #include<...原创 2018-12-18 08:04:54 · 331 阅读 · 0 评论 -
AGC002[BCDEF]题解
F是计数于是就做(kan ti jie)了= = B - Box and Ball 模拟一下 每个盒子开一个d表示有的球数 可能存在红球的打个标记 传递一下就行了 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 2002...原创 2018-12-28 11:11:54 · 325 阅读 · 0 评论 -
SPOJ8222 NSUBSTR - Substrings
传送门[洛谷] SAM模板题 可惜我不会 本来想大力上线段树的 然后发现题解的做法非常精妙 因为 很显然长度为i的字符串出现长度一定>=长度为i+1的字符串 [作为子串出现就可以取到=] 那么直接记录最后倒着更新一遍就可以啦 附代码。 #include<cstdio> #include<cstring> #include<algorithm...原创 2018-12-17 19:36:50 · 139 阅读 · 0 评论 -
洛谷4721 【模板】分治 FFT
传送门 久违的多项式全家桶= =+ 分治NTT 用的就是cdq分治的思想 对于当前递归到的区间[l,r] 我们处理出[l,mid]对[mid+1,r]答案的贡献 然后分治递归求解就可以啦qwq 这个贡献是前一半卷积的答案加过去就可以啦 对于x的贡献 附代码。 #include<cstdio> #include<cmath> #include<algor...原创 2018-12-22 18:36:32 · 262 阅读 · 0 评论 -
CF622F The Sum of the k-th Powers
传送门 自然数幂和的拉格朗日插值求法 列出柿子 然后带一下值就可以了qwq 预处理分子分母啥的 见代码吧。 附代码。 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 20021225 #define ll long lo...原创 2018-12-24 21:01:07 · 358 阅读 · 1 评论 -
洛谷3804 【模板】后缀自动机
传送门 真·玄学 还是没有完全搞懂SAM的性质啥的啊T^T 我本来以为SAM会很长的没想到这么短 这个题就是建出SAM 然后建树求出right然后*len[max]直接取max即可啦 学习笔记什么的等等吧[鸽了我也不管] 附代码。 #include<cstdio> #include<cstring> #include<algorithm> ...原创 2018-12-17 16:29:25 · 272 阅读 · 0 评论 -
洛谷4360 锯木厂选址
跟y_immortal巨佬一起写点斜率优化,就当复习了= = 这个推个柿子得到 其中j<k 维护个下凸壳就行了 初值赋错好几次 以为我写跪了。。。 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 20021225 #...原创 2018-12-27 20:08:22 · 189 阅读 · 0 评论 -
【学习笔记】整体二分(BZOJ2738矩阵乘法)
也是因为一道题才来学的。。。 然后就发现这道模板貌似是暑假初期在某校集训的时候的比赛题 并且好像没改= = 前置芝士 1.二分= = * CDQ分治[你要是知道CDQ分治的话这玩意就很好理解啦] *本题使用二维树状数组 整体二分是类似CDQ分治的一类东西 CDQ分治是计算左边对右边的贡献 整体二分是计算左边的贡献来确定答案在哪边 具体来说就是这样一个过程 [l,r,L...原创 2018-12-27 19:08:25 · 257 阅读 · 0 评论 -
BZOJ5261 Rhyme
传送门 广义后缀自动机= =+ 跟ptx大爷的博客学的 戳我传送 我写的第一种 建立Trie树的写法 bfs建立SAM 为什么是bfs呢 我也不知道(GG) 经过我一番抱大腿+询问 各位大爷说的原因是 因为dfs时间复杂度不对 多有道理哦 【摔 不过好像这个复杂度保证好像真的不大准确2333 所以 安安心心bfs就最吼啦 复杂度貌似是trie的大小 其实 每次重置last为rt也可...原创 2018-12-22 12:07:30 · 229 阅读 · 0 评论 -
【学习笔记】可持久化并查集(BZOJ3673)
好久之前就想学了 然后今天恰巧一道题需要用到就学了 前置芝士 1.主席树[可持久化数组] 2.并查集 如果你掌握了前面两个那么这个东西你就会觉得非常沙茶。。 构造 可持久化并查集 = 主席树 + 并查集 有点蠢= = 当然 我们这里的并查集是要按秩合并的并查集 [按秩合并:就是把dep小的连接到大的上面 这个复杂度分析出来是O(lgn)的 原因不要问我 我不知道= =...原创 2018-12-27 18:02:16 · 194 阅读 · 0 评论 -
AGC001[BCDE] 题解
A没意思 F太难 所以大概近期的AGC题解都是BCDE的 然后特殊情况再说 开始刷AGC的原因就是计数太差 没有脑子 好几个学长都推荐的AGC所以就开始刷了 = = 大概两天三篇的速度?【可能也就最开始几天能有这个速度= =】 好了不多说了 开始题解 ————————我是分割线———————— B - Mysterious Light 比较有趣 画几个图就发现每次去掉两条就是平行四边...原创 2018-12-27 16:55:57 · 507 阅读 · 0 评论 -
BZOJ4698 Sdoi2008 Sandy的卡片
传送门 转化题意可以得到 我们求得就是 所有串的差分串的LCS SAM水过就好啦 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<map> #define inf 20021225 #define ll long lon...原创 2018-12-21 11:16:08 · 166 阅读 · 1 评论 -
BZOJ1396 识别子串
传送门 拼命给自己拉低AC率( SAM 一发入魂 很明显 我们要查的就是 叶子结点 叶子结点 的 len 和 其父亲的 len 会影响一段区间 大概长这个样子 前面一段倾斜的 就是 len 在不断增长 后面的要取min所以就是平直的[你可能需要意会一下] 因为一个点的len是一段连续的区间 你从这个图里就可以看的比较清楚了qwq 然后我们 就重锤李超树 咳咳咳才不要李超树呢 ...原创 2018-12-21 08:57:15 · 243 阅读 · 0 评论 -
BZOJ3926 诸神眷顾的幻想乡
传送门 树上SAM! 显然如果树上一条一条字符串放的话那么是n^2的w 但是 题目的性质非常吼啊! 20个叶子节点 我们就可以 把所有叶子结点拎出来当根 全部扔到一个SAM里 就吼啦 最后的答案是 因为自动机上一个节点的贡献就是这么多啦 自动机啥的代码真的好写呢[FLAG] (机房好冷啊) 附代码。 #include<cstdio> #include<...原创 2018-12-20 20:10:19 · 221 阅读 · 0 评论 -
BZOJ4259 残缺的字符串
没有传送门 = = 跟上一个题一样 请戳链接 唯一的变化就是柿子稍微一改 然后没啥了 注意翻转的位置要改。。。所以不如翻那个不需要改的= =+ #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #d...原创 2018-12-26 16:01:49 · 338 阅读 · 0 评论 -
BZOJ4503 两个串
没有传送门 因为是权限题 =.= 利用卷积来做字符串匹配问题= =+ 如果我们现在有两个串 单纯要匹配它们我们可以怎么做呢 ? 很明显是不可以的 因为可能出现这种情况 aabb bbaa 两个部分抵消掉了=.= 我们如何处理这样的问题呢?平方! 这样子就好多了qwq 然后我们来处理通配符 通配符设为0然后乘上去就可以啦qwq 是不是非常优秀 = =+ 然后我们回归原题...原创 2018-12-26 15:36:10 · 217 阅读 · 0 评论 -
ARC100E Or Plus Max
据说这玩意叫 FZT = = 我还以为什么FWT进化的高端玩意然后跑去看了题解然后发现 这特么不就是个DP吗= = 很明显转成前缀最大值就可以了 然后我们对于i可以枚举所有为1的地方变成0的转移 注意判下重【不判你也过不了样例】 然后就做完了= = //Love and Freedom. #include<cstdio> #include<cstring> #i...原创 2019-01-08 11:34:01 · 321 阅读 · 0 评论 -
BZOJ3398 牡牛和牝牛
隔板搞掉就行了 特么我什么时候感冒能好!QAQ。脑子都没有了QAQ。 //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 20021225 #define ll long long #defi...原创 2019-01-16 11:43:44 · 383 阅读 · 0 评论 -
[扫雷][游戏] 交互*2
由于是校内训练赛 就不贴网址啦【贴了你也进不去2333 扫雷是T1嘛 反正就很水 先随机找几个点然后 枚举随机种子S是啥就可以了 然后这道题开启了机房疯狂hack的节奏QAQ 交互的本地测试可以直接把代码贴到grader后面就可以啦/xyx #include "mine.h" #include<cstdio> #include<cmath> #include&l...原创 2019-01-16 10:08:50 · 209 阅读 · 0 评论 -
LOJ6433 PKUSC2018 最大前缀和
喵哒 好不容易想出来结果被题面坑了呜呜呜 j=1!!!! 前缀和不能为空!!! 喵哒= = 所以我们可以想到 对于没选的后缀 肯定是所有前缀和都要<=0 不然的话就可以加上比原来更优 然后这个很明显可以dp哒 然后 对于前面的 我们可以发现我们倒着插入就是只要插入前>0的话就是可以转移哒 <0的话显然不选更优 那么分别进行dp 合并即可 注意最后要(ans+wph)...原创 2019-01-10 08:31:14 · 287 阅读 · 0 评论 -
洛谷3605 Promotion Counting
线段树合并都是蓝题了嘛 我可能和时代脱轨了emm... 直接离散化然后合并就好啦w 生病了真难受QAQ //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define ll long long #define ...原创 2019-01-15 12:41:35 · 348 阅读 · 0 评论 -
BZOJ2002 [HNOI2010] 弹飞绵羊
LCT access完了一定splay再用!!! 悲伤= = LCT裸题 把调出去设虚点n+1即可 //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define N 200010 #define ls(x) ...原创 2019-01-19 22:33:34 · 269 阅读 · 0 评论 -
BZOJ2965 保护古迹
非常带劲之计算几何 写的头晕= = 就是平面图转对偶图然后最小割 由于p非常小我们枚举所有保护状态然后割一下 建图真的烦 就是把区域划分出来看一下每一个古迹点是否被小区域包含【好像也可以写点定位】 然后我好像判左右叉积又双叒叕的写反了? 整个画出图来然后发现好像没建错图= = 然后把!删掉竟然过了= =于是愉快改成onright= = 区域划分就是双向直线然后每次找反向的极角的最近的...原创 2019-01-09 10:53:36 · 311 阅读 · 3 评论 -
BZOJ1030 [JSOI2007] 文本生成器
我再看错模数我就是呆头 考虑包含任意的补集不包含任何 然后典型的AC自动机上dp 长度为l不能走到任何关键点 特么模数多写了个0 问题是我刚跟zyf吐槽了模数 就当考前提醒了= = //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm> #include&l...原创 2019-01-19 21:03:33 · 250 阅读 · 0 评论 -
BZOJ3233 [AHOI2013] 找硬币
dp题 由于每一个都是上一个的倍数 显然可以证明 如果可以用一个较大的 肯定用了是更优的 那么我们就可以进行刷表dp 就是 n/1 + n/2 +n/3 +...+n/n 调和级数掉 最后mnlgm (m值域) 轻轻松松松【雾 //Love and Freedom. #include<cstdio> #include<cstring> #include<...原创 2019-01-18 22:04:43 · 311 阅读 · 0 评论 -
BZOJ4269 再见xor
考前挣扎 线性基裸题 mx直接求 次大直接从低到高枚举第一个非0位 然后次大就是异或上就行了【显然贪心呐qwq 不到800b可还行 //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 2...原创 2019-01-18 20:25:08 · 236 阅读 · 0 评论 -
BZOJ5297 CQOI2018 社交网络
考前挣扎 有向图生成树 我们知道对于无向图生成树可以通过矩阵树定理来算具体就是 度数矩阵 - 邻接矩阵 去掉任意一行一列得到余子式 对行列式求值 有向图生成树分为外向和内向两种 外向生成树当然是所有边指向儿子 他的矩阵树定理是这个样子 对于有向边(x,y)度数矩阵d[y][y] ++ 邻接矩阵e[x][y] ++ 内向生成树所有边指向父亲 对于有向边(x,y)度数矩阵d[x][x]...原创 2019-01-18 19:31:55 · 216 阅读 · 0 评论 -
AGC020C Median Sum
高端操作qaq 又双叒叕读错题了= = 然后重新读题发现不会做了 于是瞅了一波题解 我靠要不要这么暴力呜呜呜 直接bitset O(n^3/w)QAQ 就是f[i]表示i是否能被搞出来 然后我们先不看2^n-1 补上空集就是2^n 然后这就两两对应分出组了 然后我们要找的就是比(sum+1)/2大的第一个元素 bitset强上= = 学习一发bitset正确优化姿势也海星 //...原创 2019-01-08 11:38:27 · 244 阅读 · 0 评论 -
BZOJ 2565 最长回文串
传送门 回文自动机! 正着跑一遍 记录以每个点作为回文子串的右端点的最大长度 倒过来跑一遍 记录每个点作为左端点的最大长度 求个和就好啦 附代码。 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 20021225 #de...原创 2018-12-20 15:05:20 · 146 阅读 · 0 评论 -
LOJ149 0/1分数规划
竟然没有写过分数规划的题解 考前挣扎一发板子( 二分答案k 然后0/1分数规划的方法就是 分母乘过去然后贪心解决 注意实数二分的精度 一般估计一个次数比较好不然容易出现精度比较误差【惨痛教训 就做完了qwq //Love and Freedom. #include<cstdio> #include<cstring> #include<algorithm&g...原创 2019-01-18 15:41:37 · 269 阅读 · 0 评论 -
BZOJ2132 圈地计划
传送~ 来自y_immortal学长的网络流推荐2333 建模比较神仙qwq 首先可以建立最小割模型 ->二选一 就是我们处理不同的贡献不好处理 那么我们考虑怎么把它变成相同的贡献 对于原图我们进行黑白染色 然后如果一个点属于T集我们让它反色就可以做到相同的有贡献 那么很明显这个贡献是双向的 对于两个点之间的贡献是相加的 所以我们这样做最小割就可以辣~ 代码。 //Lov...原创 2019-01-18 15:26:00 · 248 阅读 · 0 评论 -
UOJ131 [NOI2015] 品酒大会
考前挣扎(bu shi 之前留下来的坑 首先注意到 SAM的parent树 是反串的后缀树 也就是原串的前缀树 这个性质很重要 所以说我们在树上统计的时候两个点的lca就是两个后缀串的lcp 于是可以替代后缀数组(嘿嘿嘿 然后嘞我们树形dp 统计的size就是以这个串为前缀的子串个数 然后我们通过差分【最后后缀和 来进行统计对数 树形dp维护mn mx来进行查询最大 【有负所以要维护m...原创 2019-01-18 11:28:13 · 207 阅读 · 0 评论
分享