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 imes 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(100Tsqrt{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(Tsqrt{n}))的,发现(O(Tn))也能过。。。
E 水题
F 树上路径交
G 分块,处理出块内([L,R])到每个点的最短距离。查询(O(sqrt{n})),
H 先做一次,找到置换的位置,把循环次数取lcm
I 在六条边上三分,算出点到平面的最短距离。
J 水题