训练记录
gym102759 XXI Open Cup. Grand Prix of Korea
挺考思维的一场,全靠队友C
*A 用二分图上的最小割推出结论 首先对a降序排序,\(\forall k \sum_{i=1}^{k}a_i \leq \sum_{i=1}^{m}min(b_i,k)\),再令\(\sum_{i=1}^{m}min(b_i,k) = \sum_{i=1}^k \sum_{j=1}^{m}(b_j \geq i)\) 用线段树维护即可
D 先求最大生成树,生成树内的点对\((u,v)\)的边权值为树上\((u,v)\)路径的最小边权。可以在求生成树的同时求答案,最后用没有加入生成树的边来check。不同树之间的点对权值为\(1\)
H 二分答案,从后往前check
G DP,只要求出从\((1,0)(-1,0)(0,1)(0,-1)\)出发使用\(i\)到\(n\)的指令最后停下的位置,从后往前dp
K 找到一条链走过去再走回来。以\(x\)为第一关键字,\(y\)为第二关键字排序,直接连到底即可。
L 线段树优化DP,考虑添加一个点会对之前的产生什么贡献。先找到最近的\(j,h_j=h_i\),如果不存在\(j\)或\(\exist k \in [j,i],h_k<h_i\)则令\([1,i-1]\)内的贡献都+1,否则令\([j + 1, i-1]\)内的贡献+1
gym101775 EC-Final 2017
A 求 \(\sum_{i=k}^nC_n^i\),\(n \leq 10^9, k \leq 10^5\),发现\(k\)不大,倒着求即可
B 发现平均值一定,\(\sum_i^m x\)一定,只需要让\(\sum_i^m x_i^2\) 最小,设\(b_i\)为分配给第\(i\)题的墨水数,则变成让\((\frac{a_i}{b_i})^2\times b_i=\frac{a_i^2}{b_i}\)最小,把每道题放进堆里,贪心取即可。
C 不知道为什么的傻逼题? 队友水过去了
D 把全部合法的数字都搜出来,查询的时候二分
H dp,只需要知道是否存在好听的歌和不好听的歌。存在不好听的歌全部填元音或全部填辅音即可判断。剩下就是判断是否存在好听的歌:定义状态\(f[i][0/1]\)为第\(i\)个为元音/辅音时,前面连续元音/辅音的最短长度,如果最短长度元音\(>=x\)或辅音\(>=y\),说明当前不能是元音/辅音。一直dp下去,碰到不能填的判false即可。
J 差分
K、M 水题
L 打表找到的规律,发现 <7平局,\(7 \leq x \leq 15\)的奇数胜,偶数平局,$16 \leq x $的奇数胜,偶数败。
gym101991 ACPC2018
A 相当于有多少个点对距离在\([L,R]\)内,点分治板子题
B 简单的推了一个跟角度有关系的公式
C 水题
D 离散化,没有白巧克力的一行的贡献和上一行相同,没有白巧克力的一列和上一列贡献相同。
E AC自动机板子
F 对于每个点,算他反转奇数次的期望,所有期望加起来就是答案
*G 有趣的题,对于一个固定的右端点\(j\),\(gcd(a_i,a_{i+1}...a_j)\)不同的\(i\)最多只有\(log\)个,找到所有改变的位置。处理询问时先对\(D\)再对\(R\)进行排序,用线段树维护答案。由于改变的区间数最多只有\(nlogn\)个,总复杂度为\(nlog^2n\)
H 分块,先找到\(x\)前\(\sqrt{n}\)个位置的数,把它们看成一块,暴力从\(1-100\)的数开始搜,如果当前数在块外且剩余步数\(>\sqrt{n}\),则每次跳\(\sqrt{n}\)步,否则跳一步。复杂度为\(O(100T\sqrt{n})\)
I 水题
J 有向量\(OA\)和平面的法向量,发现和向量\(BC\)两两垂直,则可以用板子算出\(BC\)的向量,再根据\(BC\)中点即可算出\(B,C\)的坐标
KL好像都是水题
gym102040 2018 Asia Dhaka
B 简单的数位DP
C 答案就是\(\prod (c_i+1)(c_i+2)/2\),写了个\(O(T\sqrt{n})\)的,发现\(O(Tn)\)也能过。。。
E 水题
F 树上路径交
G 分块,处理出块内\([L,R]\)到每个点的最短距离。查询\(O(\sqrt{n})\),
H 先做一次,找到置换的位置,把循环次数取lcm
I 在六条边上三分,算出点到平面的最短距离。
J 水题