CF1761E
人类智慧题
1,假如本来就联通,答案显然为0
2,假如有连通块不是团,显然可以操作一次那个联通中没有连向所有点的点使联通
3,假如只有两个团,显然每一次操作,会将点加入另一个团,答案为团大小的较小值
4,假如很多个团,一次操作显然不可以,而且可以通过一次操作转化为2,所以只需两次
CF1764F
设 \(g(x,y)=f(x,x)-f(x,y)\),显然对于一个 \(x\) 和 \(y\),其路径上的点 \(u\),有 \(g(x,u)<g(x,y)\),利用这一性质,对于所有的点对 \(x,y\),将其按照 \(g(x,y)\) 升序排序,若两个点在同一连通块则不作操作,否则连上边即可,边权是容易知晓的。
CF1764E
肯定是按 \(a_i+b_i\) 升序的顺序执行操作,看最远能走到哪里,那么排序之后就变成了有很多个变化,快速求经历这些变化后的值,容易发现变化可以用广义矩阵乘法维护,直接用线段树即可。
CCPC2018 Guilin E
考虑交换之后笛卡尔树形态的变化,发现只需要找左右两侧第一个比当前大的数,可以线段树上二分。并且发现每次只会在交换点新位置做掌控区间的深度会有变化,可以快速计算,交换点的深度变化可以单独计算,需要当前的深度,为了快速获得当前深度用线段树维护深度即可。
CCPC2015 I
考虑如何判断一副牌是否合法,发现可以用状态数极少的DP表示,最终考虑DP套DP,表示原每一状态是0还是1,搜索后只有很少的状态数,直接转移即可。
CCPC2022 Mianyang A
直接大力DP,记当前到第几回合,A选了几次,B选了几次即可,注意正确的DP应该需要倒着做。
CCPC2022 Mianyang E
首先考虑暴力,定义 \(g_i\) 为在 \(i\) 这个点的 \(1\) 个人需要花费多少代价走到安全点,如果能求得那么答案显然为 \(\sum_{i=1}^ng_ia_i\)。\(g_i\) 的求解显然,一开始全为 0 ,然后倒着对每个 \(b_i\) 更新其 \(g_i\)。于是问题变为了如何快速更新 \(g_i\),容易想出对点的度数进行根号分治,然后暴力维护可以做到 \(O(n\sqrt n\log n)\),较好的实现可以通过,也可以使用定期重构方法优化为 \(O(n\sqrt n)\)。
CCPC2022 Mianyang L
显然最终每一个节点的最终值只由一个点决定,前面的 \(l-1\) 个点的具体取值与输出无关,只要求恰好一半为0一半为1,那么容易发现这个问题由一个经典问题重复很多次构成,这个经典问题是对于一列数选0的代价为 \(a_i\),选1的代价为 \(b_i\),最后恰好选 \(k\) 个1最小代价,做法为一开始全选0,然后按照 \(b_i-a_i\) 排序选最小的 \(k\) 个变为1。于是这个题就为了要维护可以修改的经典题,用权值线段树维护下即可。
CCPC2022 Weihai B
先求出1的个数,剩下的不会超过30个,把1去掉,对于剩下的那些操作,因为要同时满足个数,和,积三个要求的划分很少,直接暴力搜索出来,然后找一下合法方案即可。
CCPC2022 Weihai F
对于同种颜色,直接走的代价是最短路,不同颜色的点为前一段相同的加上最后一段变颜色的,然后强制每一次都要换颜色,最后求答案特判一下即可,给不同颜色的点之间连边,然后求最小瓶颈路径即可。
CCPC2022 Weihai I
直接二分答案,然后贪心从高往低取。
CCPC2022 Weihai J
容易发现最终状态是唯一的,求出最终状态后,与初状态比较即可知道胜负。
CCPC2022 Weihai K
发现两种限制一种是 \(L>=a_i \cap R<=b_i\),另一种是 \(L<=a_i\cup R>=B_i\),枚举第二种限制哪一部分满足左边分段计算。
CCPC2022 Weihai L
发现若是一共只有 \(2^{n-1}+1\) 个数的话,显然可以通过轮换构造出解,那么不妨对于 \(0\sim2^{n-1}-2\) 的那些为1个,后 \(2^{n-1}+1\) 个数中选其他的来把前面的数全部变为0,最后再对后面的进行轮换构造即可。
ICPC2022 Jinan C
显然的树上背包,写成多项式相乘的话容易发现可以做除法,就可以解决问题
ICPC2022 Jinan D
枚举那些题过了,假如罚时数确定,那么可以先将确定的时间减去,然后只需要分配时间,能大尽量大,没了就补0即可。
ICPC2022 Jinan E
容易发现排列模2结果按k位循环,设几个变量检查有无合法解即可,注意讨论细节。
ICPC2022 Jinan G
先人告诉我们交换次数是 \(O(n\log n)\) 级别的,那么只需要维护一个线段树直接模拟即可。
ICPC2022 Jinan J
首先发现减不能小于0的限制没用,因为假如减到0的话不如一开始就不选,所以如果选过后不会减到0以后。另外若对答案进行分析,会发现相邻不选不会超过200次,那么知道这些就可以直接暴力DP了。