题目传送门:https://arc063.contest.atcoder.jp/tasks/arc063_c 题目翻译 给你一个树,上面有\(k\)个点有权值,问你是否能把剩下的\(n-k\)个点全部填上权值,使得每条边链接的两个点权值相差\(1\),如果可以做到需要输出任意一组方案. 题解 我们考虑每条边权值为\(1\)或\(-1\),那么相当于黑白染色一样,所有点权值的奇偶性也都是确定的.如果与读入的\(k\)个点中某个点相冲突了就\(GG\).另外每个点的取值范围都可以转化成一段区间\([…
题目传送门:https://arc080.contest.atcoder.jp/tasks/arc080_c 题目翻译 给你一个\(n\)的排列\(p\),一个空序列\(q\),你每次可以从\(p\)里选择相邻的两个元素按照原本的顺序放在\(q\)的首位.问可以得到的排列字典序最小是什么.长度小于等于\(2*10^5\) 题解 我们考虑倒着做.看看能最后一个被取出来的数最小是什么.显然,能在最后一对被取出来的数对第一个数在奇数位,第二个数在偶数位. 我们可以对奇数位的数字维护一个\(st\)表,…
题目传送门:https://arc072.contest.atcoder.jp/tasks/arc072_c 题目翻译 给你一个数组\(D\),然后给你一个操作序列\(d\),每次操作可以将\(D\)变成\(min(D,|D-d[i]|)\).假如这一个操作序列执行完了之后你的\(D\)变成\(0\)了,那么就称这个操作序列是合法的.现在有\(Q\)个询问,每个询问由一个\(q[i]\)表示,问你假如你可以把\(d[i]\)变成任意正整数,你能否将这个操作序列变成不合法的.\(N,Q\leqsl…
题目传送门:https://arc074.contest.atcoder.jp/tasks/arc074_c 题目翻译 给你一行\(n\)个格子,你需要给每个格子填红绿蓝三色之一,并且同时满足\(m\)个约束.每个约束由\(l,r,x\)来形容,表示\(l\)到\(r\)之间的所有格子颜色种数必须为\(x\),求方案数.\(n,m\leqslant 300\) 题解 设\(f[i][j][k]\)表示当前已经涂到了\(x=max\){\(i,j,k\)},最后一个红色格子在\(i\),最后一个绿…
题目传送门:https://arc073.contest.atcoder.jp/tasks/arc073_c 题目翻译 给你\(N\)个袋子,每个袋子里有俩白球,白球上写了数字.对于每一个袋子,你需要把袋子里的球染色成一个红色和一个蓝色,求出\((R_{mx}-R_{mn})*(B_{mx}-B_{mn})\)的最小值.其中\(R_{mx}\)表示红球的最大值,\(R_{mn}\)表示红球的最小值.蓝球同理.\(N\leqslant 2*10^5\) 题解 分情况讨论.假设最小值是红色,最大值是…
Link: ARC063 传送门 C: 将每种颜色的连续出现称为一段,寻找总段数即可 #include <bits/stdc++.h> using namespace std; ,len; ]; int main() { scanf();len=strlen(s+); ;i<=len;i++) ]) cnt++; printf(); ; } Problem C D: 可以发现对于每一个点的最优解$res_i$为: $max(w_j)-w_i(j>i)$ 找到最小的$res_i$的个…
Bichrome Spanning Tree 题意: 给出一个n个点,m条边的无向连通图,现在要给每条边染色,可以染成黑色或者白色. 现在要求在染色完毕后,找出一个至少包含一条黑边和一条白边的最小生成树,使其权值和为X. 问这样的染色方案有多少个? 题解: 题目要求找出一个至少包含一条黑边和白边的最小生成树,那么可能就会存在这种情况:原图的最小生成树所有边都为同色,那这不是我们要求的:我们这时就会去掉一条权值最大的边,再添一条边进来. 那么我们就可以算出包含指定边的最小生成树,方法就是先加我们指…
题意 小 \(\mathrm{C}\) 很喜欢二维染色问题,这天他拿来了一个 \(w × h\) 的二维平面 , 初始时均为白色 . 然后他在上面设置了 \(n\) 个关键点 \((X_i , Y_i)\) , 对于每个关键点他会选择进行下列操作的一个 : 将 \(x > X_i\) 的部分染成黑色. 将 \(x < X_i\) 的部分染成黑色. 将 \(y > Y_i\) 的部分染成黑色. 将 \(y < Y_i\) 的部分染成黑色. 现在让你 , 最大化所有操作结束之后白色部分…
题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_d 题目翻译 给你一棵树,每次任选一个点染色,先手染白色,后手染黑色.如果最后存在一个白色的点与其相连的点都是白色的,就算先手胜利,否则后手胜利.两人绝顶聪明,\(n\leqslant 10^5\) 题解 假设这颗树存在完美匹配,那么不管先手染哪一个点,后手都能将与其匹配的点染成黑色.也就是说,存在完美匹配的话后手一定胜利. 假设不存在完美匹配,先手每次可以选择一个叶子结点的父亲染色,然后后…
题目传送门:https://agc014.contest.atcoder.jp/tasks/agc014_e 题目翻译 有一棵有\(N\)个点的树,初始时每条边都是蓝色的,每次你可以选择一条由蓝色边构成的简单路径,让这条路径的两个端点间连上一条红边,然后断开这条路径上的某条蓝边.这样做\(N-1\)次,就可以把原本的蓝树变成红树.现在给你蓝树和红树的样子,问你可不可能把给出的蓝树变成给出的红树.\(N\leqslant 10^5\) 题解 先膜一发大佬的题解:https://blog.csdn.…