把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 45 下一页
摘要: 题面传送门 吐槽一下为什么求一次函数解析式然后暴力带入会WA,然后求斜率比较就对了啊。 首先那个式子不是很好处理,我们来考虑这个式子的组合意义。 容易想到这个就是非边界上的点选与不选,即选点集能构成凸包的方案数。 然后这个容斥一下,枚举共线点即可。 时间复杂度$O(n^3)$ code: #incl 阅读全文
posted @ 2021-06-06 15:22 275307894a 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 这个其实是板子题。 容易发现我们需要让每条边的下界是$1$,上界是正无穷。 所以模仿最大流一样的建边跑最小费用最大流然后再加上每条边本来的费用即可。 时间复杂度$O(能过)$ code: #include <vector> #include<iostream> #include<cstd 阅读全文
posted @ 2021-06-05 22:42 275307894a 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 写了个线性基暴力插入结果又T又WA 首先我们可以把这个东西看成二进制多项式。 然后这个二进制多项式的两个操作可以看成加减和位移。 我们考虑处理出$G=gcd(a_i)$,那么可以证明是$G$的倍数是能被表示出来的充要条件。 因为$a$都是$G$的倍数而加减乘除并不影响这个。 处理$G$可 阅读全文
posted @ 2021-06-05 22:04 275307894a 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 像个sb一样写了树套树然后又卡空间又卡时间。 首先我们考虑一下没有深度限制怎么做。 考虑把每种颜色都拿出来建一棵斯坦纳树,所以斯坦纳树上的所有点都有这种颜色的一个贡献。 具体的,维护每个点最近的两个点的dfs序然后每个点加一,lca处减一即可。查询只要查dfs序上子树和即可。 现在是考虑 阅读全文
posted @ 2021-06-05 19:55 275307894a 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 这道题首先考虑拆位,但是有加减法所以感觉很难做。 考虑另一种方法,把每种值出现的次数算出来然后再计算。 设$ans_i$为区间和为$i$出现的次数,$f_i$为前缀和为$i$的出现次数。 那么就有$ans_i=\sum\limits{f_j\times f_{i+j}}$ 然后显然翻一下 阅读全文
posted @ 2021-06-05 14:38 275307894a 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 感觉完全没有黑题难度啊。 首先最大值最小就想到二分答案。二分后转化成判定性问题。 然后我们将两两曼哈顿距离大于$mid$的点连边,我们只需要判断是否是二分图即可。 这个东西如果真的建边来空间复杂度很大所以直接隐式建边即可。 然后第二个问统计方案,可以发现如果在一个联通块内有两种情况,那么 阅读全文
posted @ 2021-06-04 22:24 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 一道神仙题目。 枚举个gcd把原式化为$\sum\limits_{d3\sum\limits_{\sum\limits_{ij[gcd(i,j)=1]}}}$ 设$sum(n)=\sum\limits_\(那么那个式子莫反一下就是\)\sum\limits_{k3\sum\limits_ 阅读全文
posted @ 2021-06-03 21:00 275307894a 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 杜教筛是个奇奇怪怪的东西。在此之前先介绍一个更奇奇怪怪的东西 狄利克雷卷积 定义$(f*g)(n)=\sum\limits_{d|n}{f(d)\times g(\frac)}$ 那么有几个基本结论: \(\mu*I=\varepsilon\) \(\mu*id=\phi\) \(\phi*I=id 阅读全文
posted @ 2021-06-03 19:06 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 容易想到费用流。 但是这道题真的数据很强啊。 对于每个点拆点以保证其只被选一次。 同时对于膜$7$同余,就对于每个余数建一条链然后从这条链上进出。 对于加一减一要麻烦一点,首先要对于每个数建一条链然后从加一减一的那条链上进出。 然后注意一定要正序建边呀。 code: #include < 阅读全文
posted @ 2021-06-01 20:36 275307894a 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 类似最大流,我们肯定要考虑在残量网络上搞事情。 对于最大流,我们是原流+残量网络上源到汇的最大流。 那么感性理解一下,最小流就是原流-残量网络上汇到源的最大流。 code: #include <vector> #include<iostream> #include<cstdio> #in 阅读全文
posted @ 2021-05-30 16:11 275307894a 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 按照常见莫反套路先拆式子 \(\prod\limits_{i=1}^{N}{\prod\limits_{j=1}^{N}{\frac{i\times j}{gcd(i,j^2)}}}\) \(\prod\limits_{i=1}^{N}{i^{2N}}\times \prod\limit 阅读全文
posted @ 2021-05-29 22:21 275307894a 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 说是模板却有一点建模难度。 关于有源汇上下界最大流可以看这篇博客这里只说怎么建边。 首先肯定是从源点向每一天连$[0,D_i]\(的边。从每个少女向汇点连\)[G_i,INF]$的边。 然后由每一天向对应的右部点连$[L_i,R_i]$的边。然后跑网络流即可。时间复杂度$O(能过)$ c 阅读全文
posted @ 2021-05-29 21:14 275307894a 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 我们已经知道无源汇怎么办了,现在考虑有源汇。 可以发现除了源点和汇点都是满足流量守恒的。所以我们只要让源点和汇点流量守恒即可。 所以只要给汇点流向源点无限容量边即可。 但是这个只是一个可行流。不是最大流。 我们要想办法将其变成最大流。因为虚拟源和虚拟汇都被我流满了,所以改成在起初的源点和 阅读全文
posted @ 2021-05-29 20:27 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 这个东西看上去其实很难做。 有一个naive的想法就是把每条边的权值重新定为$upp-low$,然后跑最大流。 但是有一部分流量会飞掉。有一些点入流不等于出流。 这时候我们建一个超级源与超级汇。 设$cnt_u=\sum\limits_{(v,u)\in E}{low_{(v,u)}}- 阅读全文
posted @ 2021-05-29 16:00 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 其实在链上不是很好吗,为什么要把它上树呢 容易想到网络流。 但是有一个大问题就是网络流没有办法表示加和。 其实如果是普通线性规划这个东西不应该连续起来。 但是它连续了就有了可以做的办法。 定义$(x,y,g,w)$为$x->y$流量为$g$,费用为$w$的边。 如果我们连$(ST,1,I 阅读全文
posted @ 2021-05-29 14:59 275307894a 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 盲猜了个结论然后居然对了。 如果我们把a看成$0$,b看成$1$,c看成$2$,容易发现一次变换后所有值加和$\mod 3$的值不变。 然后稍微想一想就可以发现除了$T=S$之外,$T$中一定至少一个相邻两字符相同。 所以这个是必要条件。 然后我猜这是个充分条件。 所以基础dp即可。 c 阅读全文
posted @ 2021-05-29 14:43 275307894a 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 草不看题然后卡精度调了半天。 其实对于这种有$k$的东西就是考虑wqs二分吧。 然后显然这个有凸性。 所以直接斜率优化一下即可。 code: #include <vector> #include<cstdio> #include<cstring> #include<vector> #in 阅读全文
posted @ 2021-05-27 19:30 275307894a 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 因为这道题点名卡spfa,所以要用spfa。 本来可以跑$n$轮spfa但是这个可能有负权边。 然而这个东西如果我们以$0$为超级源跑一边最短路设为$h_i$,那么显然有$h_i+w_{i,j}\geq h_j$ 所以我们更改每条边权值为$h_i+w_{i,j}-h_j$因为这个只和两边 阅读全文
posted @ 2021-05-26 19:29 275307894a 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 知道结论这个就很水了。 因为这个如果这个东西前面能划分掉一定不会等到最后划分所以一定是个凸函数。 然后直接wqs二分分一下然后决策单调性乱划即可。 时间复杂度$O(nlognlogw)$不过感觉还跑得很快,最大点才700ms直接最优解。 code: #include <vector> # 阅读全文
posted @ 2021-05-25 19:31 275307894a 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 设$f_i$表示将$i$及其后代打死的最小代价。 可以发现转移方程是这样的$f_u=min(b_x,a_x+\sum\limits_{v\in u})$ 发现转移成环,不太好做。 如果我们先把所有点放入队列,然后对于每个能更新答案的点将其父节点入队,再更新答案即可。 注意卡常。特别是用v 阅读全文
posted @ 2021-05-23 09:05 275307894a 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 wqs二分可真是个神奇的方法。 首先这道题那个式子化简一下就是$(\sum+1)2$ 易得设选$k$个为$f(k)$这个东西是个单调下降的函数,且是个凸函数。 这个东西斜率优化显然可以做到$O(nm)$ 具体的,转移方程是$dp_{i,k}=\min\limits_{dp_{j,k-1} 阅读全文
posted @ 2021-05-21 22:09 275307894a 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 看到k这么小容易想到状压。 设$dp_{i,S}$为以$i$为当前要拓展的节点,包含集合为$S$的最小值。 那么就可以两种拓展,就是这个点在最终答案上入度为$1$,那么就找一条边走出去。 如果这个点入度不是$1$,那么就划分成两个子树。 然后按照$S$正序枚举,第一种可以堆优化dj跑一下 阅读全文
posted @ 2021-05-20 21:16 275307894a 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 很妙的一道题。 根号算法在这上面只有$48$分别想了。 因为随机化算法没有前途所以考虑随机。 容易发现如果我们知道了一个子树的节点,又知道它下一层点的子树,那么我们可以有一个树不询问而直接算出来。 这个子树随机即可,因为树剖的性质所以这个可以保证$O(nlogn)$ code: #inc 阅读全文
posted @ 2021-05-19 18:11 275307894a 阅读(76) 评论(0) 推荐(0) 编辑
摘要: A 题意简述:有一个$n*m$的点阵,每两个点之间能连边当且仅当他们距离为$3$或$sqrt 5$,定义一种边的选取方案是合法的要求边集内任意两条边不能共用一个端点。求边集的最大大小并输出一种方案。\(n\times m\leq 2\times 10^5\) 并不会什么很靠谱的解法。 把每条边建出来 阅读全文
posted @ 2021-05-18 20:12 275307894a 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题面传送门 发现以前自己写的像那个一样。 首先两次dfs找重心是显然的。这个可以保证分治复杂度。 然后就可以开个桶直接算即可。 时间复杂度$O(nmlogn)$ code: #include<cstdio> #include<cstring> #include<vector> #include<qu 阅读全文
posted @ 2021-05-16 12:17 275307894a 阅读(32) 评论(0) 推荐(0) 编辑
上一页 1 ··· 24 25 26 27 28 29 30 31 32 ··· 45 下一页
浏览器标题切换
浏览器标题切换end