Codeforces 418 Div2
A An abandoned sentiment from past
1 | int n,k; |
B An express train to reveries
给出两个序列$(n<1000)$,找出一个序列使得和这两个序列不同的元素的数量都恰好是一个。
1 | int n; |
C An impassioned circulation of affection
题意给出一个字符串(长度$n<1500$),然后有$q(q<200000)$个询问$m_i,c_i$,每个询问是说可以修改字符串中的$m_i$个字符,然后最长的连续$c_i$是多少。
$n*q$在$10^8$左右,发现了暴力的解法。。
自己用的预处理+dp,又是调了好久。。。好白痴。。。
1 | int n; |
而实际,预处理可以直接下面这么搞。。。
1 | scanf("%d%s", &n, s + 1); |
D An overnight dance in discotheque
$n$个圆,要分两组。如果一个圆在一组里面被包含了偶数次,那么总面积要减掉该面积。问最大的总面积。
按照圆面积最大的开始贪心。
1 | int n; |
E An unavoidable detour for home
$n(n<50)$个点,每个点度是确定的($2$或者$3$),现在需要构建一个树,以$1$为树根。要求:
1.每个点距离$1$的最短距离$len_i$是确定的,并且该路径唯一。
2.对于$i>2$,满足$len_i>len_{i-1}$。
因为每个点距离树根是确定的而且唯一,满足上述的条件。所以想到按照层去枚举。
dp[a][b][c][d]表示上层有a个空着1条边的,b个空着2条边的,这一层有c个空着1条边的,d个空着2条边的。剩下的就是状态的转移了。。。
1 | int n; |