摘要:
已经刷不了几天了。。。 AGC001 A BBQ Easy 排个序就过了 B Mysterious Light 手膜一下,你会发现魔改一下gcd就行了 C Shorten Diameter 刚开始猜了个乱搞,但觉得是假的没敢写,最后看了题解才知道真的是那样? 先说做法,就是如果k为偶数,就枚 阅读全文
摘要:
先附一组sd图 然后放上 "原题链接" 注意,队伍不同指的是喜好不同,不是人不同 先想到DP,然后你会发现并没有什么优秀的状态设计,然后我们考虑容斥 设lim表示选的癌坤组数的上限,fi为先选出来i组剩下随便排的方案数,那么答案就是 $$\sum\limits_{i=0}^{lim 阅读全文
摘要:
"原题链接" ~~被点分治虐的心态爆炸了~~ 题解 发现直接统计路径上的颜色数量很难,考虑转化一下统计方式。对于某一种颜色c,它对一个点的贡献为从这个点出发且包含这种颜色的路径条数。 于是我们先点分一下,然后分别统计经过分治中心的路径对根和对其他点的贡献就行了。 推荐一篇比较详细的 "题解" 代 阅读全文
摘要:
"原题链接戳这儿" SOLUTION 考虑一种非常naive的统计方法,就是对于每一个点u,我们维护它能到达的点集Su,最后答案就是n∑i=1|Si|2 也就是说我们可以先树剖一下,对于每一个点都开一棵线段树,每次修改$O(nlo 阅读全文
摘要:
简单学习了一下Kummer定理,参考了几篇不错的资料,放下链接 1. "Legendre公式和Kummer定理" 2. "Kummer定理 超级Lucas定理 数论 组合数学 学习笔记" 3. "百度百科" 证明似乎比较简单,还是要去找几道题做做。 咕 阅读全文
摘要:
"原题链接" 不会啊,只好现学了 "拉格朗日乘子法" ,简单记录一下 前置芝士:拉格朗日乘子法 要求n元目标函数f(x1,x2,...,xn)的极值,且有m个约束函数形如hi(x1,x2,...,xn)=0 引入松弛变量α1αm,构造 阅读全文
摘要:
建议到 "UOJ" 上去交 题解 一眼DP,先把转移方程写出来 设dp[i]为从点i出发到点1的最小费用,那么存在转移 f[i]=min{f[j]+(d[i]d[j])p[i]}+q[i]=min{f[j]d[j]p[i]}+d[i]p[i]+q[i] 这个式子 阅读全文
摘要:
"题目链接" SOLUTION 想一下最优情况下肯定让平路或下坡尽量多,于是不难想到这样构图:包括左上角的一部分全部为0,包括右下角的一部分全部为1,于是现在问题转化为求那个分界线是什么。 画一画图,发现每条分界线对应一组割,转化成了最小割模型,然后因为数据范围对dinic不友好,化成对 阅读全文
摘要:
"原题链接" 写到一半发现写不下去了。。。 所以 orz xyz32768 ,您去看 "这篇题解" 吧,思路很清晰,我之前写的胡言乱语与之差距不啻天渊 cpp include include include include include include include include includ 阅读全文
摘要:
"原题戳这里" 绝对是一道好题 需要注意到两个东西 1.符合条件的数可以拆成一堆11...11相加的形式,比如1145=1111+11+11+11+1 2.1,11,111,1111,...模p会出现循环,循环节长度不超过p 还有就是11...11最多为9个,然后就可以$ 阅读全文
摘要:
"原题链接" 好妙的一道神仙题 题目大意 让你求在k进制下,xy(x∈[1,n],y∈[1,m])中有多少个最简分数是纯循环小数 SOLUTION 首先查一下资料,你会发现在十进制下,一个分数是纯循环小数的充要条件是分母的质因子中不含2和5。因为$1 阅读全文
摘要:
"原题链接" 首先有一个O(nk)的很显然的dp,把荷斯坦牛看成1,把更赛牛看成1,这样就可以很方便地通过前缀和来判断某一段中谁有优势了 考虑怎么优化,观察转移: $$f[i]=min\{f[j]+[sum[i] sum[j]\leqslant 0]\},1\leqslant i 阅读全文
摘要:
"原题戳这里" 题解 显然原题等价于让我们求这个式子r∏i=l(1pi)r∑i=lpi1pi的最大值是多少 打打表,或者直观上感受一下,这东西是个凸壳,进一步观察,你会发现随着左端点的右移,最优决策点也 阅读全文
摘要:
"原题链接" orz xzz巨佬 首先发现一个结论:两个相邻的c值如果不相同的话,就可以固定某个位置的值了 这启示我们把连续且相等的c给单独拿出来看,也就是对于一些c_i=c_{i+1}=...=c_j=v,能不能从中得出一些东西 这一段代表的区间总长为j i+k,所有的数都大于等于 阅读全文
摘要:
"原题戳这里" 首先可以确定的是最优策略一定是从大到小开始,遇到亮的就关掉,因此我们可以O(nlogn)的预处理出初始局面需要的最小操作次数tot。 然后容(hen)易(nan)发现即使加上了随机,那tot个也一定要被操作,也就是说操作这tot个之外的都是没用的。 于是就可以dp 阅读全文
摘要:
题目链接在这里 "洛谷" / "LOJ" 题目大意 有一个串S,每次询问给你一个串T,两个数L和R,问你T有多少个本质不同的子串不是S[L,R]的子串 SOLUTION 如果你做过 "生成魔咒" 和 "CF1037H" ,就会做这道题了 有两个坑点: 1.线段树合并时必须每次 阅读全文
摘要:
"原题链接" EDU出一道长链剖分优化dp裸题? 简化版题意 问你每个点的子树中与它距离为多少的点的数量最多,如果有多解,最小化距离 思路 方法1 . 用dsu\ on\ tree做到O(nlogn) 方法2 . 考虑dp,也就是设f[u][d]表示以u为根的子树中有多少 阅读全文
摘要:
"原题戳这里" 思路 分三种情况讨论: 1.有环 那显然是对于环长取个gcd 2.有类环 也就是这种情况 1→2→3→4→5→6→7 , 1→8→9→7 假设第一条链的长度为l_1,第二条为l_2,那么l_1和l_2需要满足l_1\equiv l_2(mod\ k),也就是$ 阅读全文
摘要:
又是一道SAM维护endpos集合的题,我直接把 "CF700E" 的板子粘过来了QwQ 思路 如果我们有[l,r]对应的SAM,只需要在上面贪心就可以了。因为要求的是字典序比T大且最小的子串,我们从前到后让尽可能多的位相等,如果再也无法相等了就从后往前找一位变大。 但是每次询问 阅读全文
摘要:
"RemoteJudge" 又是一道用线段树合并来维护endpos的题,还有一道见我的博客 "CF666E" 思路 先把SAM建出来 如果两个相邻的串s_i和s_{i+1}要满足s_i在s_{i+1}中至少出现了两次,那么s_i显然是s_{i+1}对应的结点在$par 阅读全文
摘要:
"RemoteJudge" 题目大意 给你一个串S以及一个字符串数组T[1...m],q次询问,每次问S的子串S[p_l...p_r]在T[l...r]中的哪个串里的出现次数最多,并输出出现次数。 如有多解输出最靠前的那一个。 思路 第一次见到在parent tree上线 阅读全文
摘要:
"原题看我" 题解 如果能把多块玻璃合并到一起多棒啊,但是直接把多块合并似乎不太可能,考虑两两合并 也就是已知上下层玻璃的透光率分别为a_1\%和a_2\%,反射率分别为b_1\%和b_2\%,求一块等效的玻璃,使得它和两块玻璃叠在一起的效果相同 (有一点要注意一下,就是 合并后的玻 阅读全文
摘要:
易知状态不会太多(3329个),直接搜一下,按照能不能连在后面建边,跑一遍dp即可 cpp include using namespace std; struct S { int cnt; vector s; }a[5000]; int n, m = 10, L = 32; vector G[5 阅读全文
摘要:
思路是这样的 插头dp 打表 OEIS查表 通项公式 矩阵快速幂优化线性递推 OEIS竟然有这个东西的生成函数啊 答案为 这是最终代码 阅读全文
摘要:
新科技:整体二分 它能解决的典型问题:带修改区间第k大 大概的做法是这样的:我们一次二分一个值mid,然后依据操作的答案与mid的大小关系把操作分别划到两边,然后递归下去。也就是相当于二分的是所有询问的答案 感觉其实这个跟在权值线段树上二分一个效果,只是用离线的方式替代掉了那一层权值线段 阅读全文
摘要:
先膜一发 "Miskcoo" ,大佬的博客上多项式相关的非常全 "原题戳我" 题目大意 求 \sum\limits_{i=1}^{n}i^mm^i 题解 设一个函数f(i)=\sum\limits_{j=1}^{n}j^im^j 然后貌似用一个叫扰动法(感觉就是错位相消法)的东西,算一下 阅读全文
摘要:
"原题链接" 题解 题目等价于求这个式子 ans=n2^{\frac{(n 1)(n 2)}{2}}\sum\limits_{i=0}^{n 1}\binom{n 1}{i}i^k 有这么一个式子 $$i^k=\sum\limits_{j=0}^{i}\begin{Bmatrix} k\\ 阅读全文
摘要:
"原题链接" 题目大意 n\times n的带权方阵,选一个权值最大的连通块 Solution 一眼连通性DP,然后就没了 转移很好想的啦,简单讨论一下就行了 有一个坑点,就是不能一个格子都不选,特判一下 注释还算详细QwQ 阅读全文
摘要:
Gale Shapley Algorithm 此算法的流程如下: 首先搞一个队列,存储未匹配的男士编号。每次取出一个未匹配的男士的编号,让他向其未求过婚的且最喜欢的女士求婚,如果对应女士没有匹配或者已经匹配的没有这位优,那么将这位与对应的女士相匹配,并且将原来已匹配的男士扔到队列里,一直重复上述步骤 阅读全文
摘要:
很好的一道题呀 思路 状态d(i,j)表示已经经过了行程单中的i个城市,目前在城市j的最小代价,直接建边跑最短路就行了 比如机票为ACBD,行程单为CD,那么对于(0,A),连向(1,C),(1,B),(2,D) 有两个需要注意的地方 1.起点为$(1,行程单的起 阅读全文
摘要:
"题目链接" 思路 把每个点拆成5个点id(x,y),id(x,y)+n,id(x,y)+2 n,id(x,y)+3 n,id(x,y)+4 n,分别表示到这个点时的方向为上,右,下,左和静止点 非静止点的决策如下: 1.走到对应的同方向的非静止点,代价为w 2.走到对应的同方向的静止点 阅读全文
摘要:
"原题链接" ,不是权限题 题目大意 有n个模板串,让你构造一个尽量长的串,使得这个串中任意一个长度为k的子串都是至少一个模板串的子串 题解 可以先看一下这道题 "[POI2000]病毒" 虽然是个AC自动机,不过思路很像 对于这道题,我们只需要把广义SAM建出来,然后在那些只经过$ 阅读全文
摘要:
变元矩阵树定理: 定义Kirchhoff矩阵K,其中 K_{ii}为所有与i相连的边的权值和 K_{ij}为连接i与j的边权值和的负值 那么\sum\limits_{tree\in T}\prod\limits_{E\in tree}val(E),T为生成树集合,就是 阅读全文
摘要:
"RemoteJudge" 第一次见到欧拉路径的题 注意到b和c的构造方法很特殊,即对于一个位置(经过p作用后)i,若两个数分别为b_i和c_i,那么在a中b_i与c_i相邻 其实p并没有什么用 从每一个b_i向c_i连边,那么问题转化为是否存在一条长 阅读全文
摘要:
今天学习了一下回文自动机,吊打manacher有没有(~~除了空间~~) 回文自动机基于这两个性质: 1.一个长度为n的字符串的本质不同回文子串是O(n)级别的 2.在一个字符串后增加一个字符后,最多新增1个本质不同回文子串 这两条性质都可以用归纳法证明 于是我们想到用一个结点来代表 阅读全文
摘要:
"题目链接戳这里" 题目描述 有n件不同的商品,每件物品都有无限个,输出总体积为[1,m]的方案数 思路 直接跑背包有30 考虑把每个物品的生成函数设出来,对于一件体积为v的物品: f(x)=1+x^v+x^{2v}+\cdots +x^{kv}+\cdots 那么答案$F 阅读全文
摘要:
又学到一个SAM的新套路QvQ 思路 考虑用其中的一个串建个SAM,然后用其他的串在上面匹配,匹配时更新答案 首先有一个全局变量len,表示当前已匹配的长度。假设目前在点u,转移方式如下(根节点为1): 如果没有对应的转移边,就走后缀连接,u=suflink(u),并令$le 阅读全文
摘要:
既然有这条性质,这题就很简单了: 可能在a b的简单路径上的点集,就是圆方树上a b路径上方点代表的点双的并集 对每一个方点维护一个multiset,代表其在圆方树上子结点的最小值,这样更改就只需要改父结点辣。剩下的用树剖乱搞就行了 cpp include using namespace s 阅读全文
摘要:
一道很好的圆方树入门题 感谢 "PinkRabbit" 巨佬的博客,讲的太好啦 首先是构建圆方树的代码,也比较好想好记 注释写的还算详细QWQ 考虑这一题怎么做 题目大意 给你一张无向图,让你求这样的有序三元组$$的个数,使得存在一条简单路径依次经过s,c,f Solution 首先我们把圆 阅读全文
摘要:
挺有趣的一道题 首先转化模型,思路参考蓝书,可得出等同于求 ,设个数为f[n] 考虑怎么求f[n],假设有一个n的整数划分,分别代表每棵子树中的叶节点个数,然后用可重组合,乘法原理和加法原理把f[n]递推出来 这个过程可以用dp来完成,设g[i][j]表示子树中叶结点数量最大 阅读全文