20zr联赛集训day17
B 被降智了,所以掉分了。A考虑将这个串拆成三部分考虑:114,5,14。设 $f_{i,j}$ 表示 114 的 $4$ 的位置是 $i$,1 代表 $j$ 的方案数,$g_{i,j}$ 表示 14 中 1 的位置是 $i$,4 代表 $j$ 的方案数,另外记录一个 $s_{i,j}$ 表示前 $i$ 个字符中 $j$ 的数量,字符串是 $a$,那么答案是:我们枚举 $i$ 和 $a_j$...
B 被降智了,所以掉分了。A考虑将这个串拆成三部分考虑:114,5,14。设 $f_{i,j}$ 表示 114 的 $4$ 的位置是 $i$,1 代表 $j$ 的方案数,$g_{i,j}$ 表示 14 中 1 的位置是 $i$,4 代表 $j$ 的方案数,另外记录一个 $s_{i,j}$ 表示前 $i$ 个字符中 $j$ 的数量,字符串是 $a$,那么答案是:我们枚举 $i$ 和 $a_j$...
A考虑枚举右端点,维护所有左端点的答案:只需要处理出 $pre_i$ 表示 $i$ 前面第一个和它一样的位置,每次让 $(pre_i,i]$ 加上 $w$,$(pre_{pre_i},pre_i]$ 减去 $w$ 即可。#pragma GCC optimize("Ofast") #include <bits/stdc++.h> #define fi firs...
A我考试的做法是贪心:首先这个题目等价于要求回到根(可以传送),那么如果没有传送操作,答案就是按照 $dfn$ 序走,有了传送只需要在每一步判下是传送回去再走过来优还是直接走优了。注意这样我们要先遍历深度最大值比较小的点,这样就能在最后传送回去,不会浪费。题解的做法是dp。对于这种树上游走的题目我们可以设 $f_{v,0}$ 表示从 $v$ 出发,走完子树,不用回到 $v$ 的代价。$f_{...
A贪心删除出现次数最少的数。#include <bits/stdc++.h> #define fi first #define se second #define db double #define U unsigned #define P std::pair<int,int> #define LL long long #define pb push_back #d...
A设第 $i$ 个女生的限制为 $mx_i$,意思是存在一个男生给她 $mx_i$ 的礼物。设第 $i$ 个男生的限制为 $mn_i$,意思是要给所有女生 $mn_i$ 的礼物。设男女生都根据限制大小从小到大排序,首先如果 $mx_n > b_1$ 那么就无解(所有女生至少收到了 $mx_n$ 的礼物,但是第一个女生说她没收到,矛盾了)对于每个女生,我们都要钦定好一个男生送给他礼物,我...