摘要:
已经刷不了几天了。。。 AGC001 A BBQ Easy 排个序就过了 B Mysterious Light 手膜一下,你会发现魔改一下$gcd$就行了 C Shorten Diameter 刚开始猜了个乱搞,但觉得是假的没敢写,最后看了题解才知道真的是那样? 先说做法,就是如果$k$为偶数,就枚 阅读全文
摘要:
先附一组sd图 然后放上 "原题链接" 注意,队伍不同指的是喜好不同,不是人不同 先想到$DP$,然后你会发现并没有什么优秀的状态设计,然后我们考虑容斥 设$lim$表示选的癌坤组数的上限,$f_i$为先选出来$i$组剩下随便排的方案数,那么答案就是 $$\sum\limits_{i=0}^{lim 阅读全文
摘要:
"原题链接" ~~被点分治虐的心态爆炸了~~ 题解 发现直接统计路径上的颜色数量很难,考虑转化一下统计方式。对于某一种颜色$c$,它对一个点的贡献为从这个点出发且包含这种颜色的路径条数。 于是我们先点分一下,然后分别统计经过分治中心的路径对根和对其他点的贡献就行了。 推荐一篇比较详细的 "题解" 代 阅读全文
摘要:
"原题链接戳这儿" SOLUTION 考虑一种非常$naive$的统计方法,就是对于每一个点$u$,我们维护它能到达的点集$S_u$,最后答案就是$\frac{\sum\limits_{i=1}^{n}|S_i|}{2}$ 也就是说我们可以先树剖一下,对于每一个点都开一棵线段树,每次修改$O(nlo 阅读全文
摘要:
简单学习了一下$Kummer$定理,参考了几篇不错的资料,放下链接 1. "Legendre公式和Kummer定理" 2. "Kummer定理 超级Lucas定理 数论 组合数学 学习笔记" 3. "百度百科" 证明似乎比较简单,还是要去找几道题做做。 咕 阅读全文
摘要:
"原题链接" 不会啊,只好现学了 "拉格朗日乘子法" ,简单记录一下 前置芝士:拉格朗日乘子法 要求$n$元目标函数$f(x_1,x_2,...,x_n)$的极值,且有$m$个约束函数形如$h_i(x_1,x_2,...,x_n)=0$ 引入松弛变量$\alpha _1 \alpha _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$进制下,$\frac{x}{y}$($x\in [1,n],y\in [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 阅读全文
摘要:
"原题戳这里" 题解 显然原题等价于让我们求这个式子$\prod\limits_{i=l}^{r}(1 p_i)\sum\limits_{i=l}^{r}\frac{p_i}{1 p_i}$的最大值是多少 打打表,或者直观上感受一下,这东西是个凸壳,进一步观察,你会发现随着左端点的右移,最优决策点也 阅读全文
摘要:
"原题链接" 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]$表示子树中叶结点数量最大 阅读全文