发点存货。
和 @splay1 打的。
A
他过的,签到,不讲了。
B
这东西是唐题。
考虑路径有两种情况,一种是在环上,一种是一个 $\rho$ 形。
那么,我们只需要从入度为零的点搜一遍,再搜一遍所有的环即可。
前半段不会 TLE 的复杂度分析留作练习。
C
考虑进行一个二分图匹配即可,我唐了,一开始没会。
D
也是唐题,大家可以推一下 $[1,x]$ 中某一位是 1 的数的个数,然后就很好做了。
记得少取模,否则会像我一样 TLE。
E
防 AK 题,我没会。
F
你可以在两种操作中选择一种进行最多一次操作。
所以是唐题,枚举所有的可能操作方案即可。
G
唐题,二分答案,然后一定选择白嫖 $k$ 个最大的。看剩下的和是否小于 $m$,
H
他写的,签到题。
答案即为:
$$\max(\sum_{i=1}^{n}a_i+n,\sum_{i=1}^{n}a_i+\max_{i=1}^{n}a_i(n-1))$$
I
考虑当 $a_1$ 最大的时候,答案就最大。
所以你看一下能移位到的区间,然后选个 $a_1$ 最大的即可。
实现的时候比较精妙,所以我这里贴一下核心代码:
const int N=2e5+10;
int n,t;
int a[N];
int maxx,pos;
int now;
void main(){
n=R,t=R;
fo(i,1,n) a[i]=R;
maxx=a[1],pos=0;
now=1;
fo(i,1,min(t,n))
{
if(now==1) now=n;
else now--;
if(a[now]>maxx) maxx=a[now],pos=i;
}
write(pos);
}
J
唐题。
你考虑枚举箭头矩阵的左下角,然后二分能取到的最大边长即可,剩下的东西全是 dirty 二维前缀和,不管。
K
他写的,签到题。
答案就是 n/2*(n-n/2)
。
证明显然,因为你可以把所有的点都变成孤立点。
L
赛时没过。
赛时考虑的思路是,先边双缩成树,然后相当于考虑有 $n$ 个数,凑最接近 $\frac{sum}2$ 的数。
后面一步我考虑的是使用“付公主的背包”的做法,比较小丑,暂且不表。
总结:全是唐题。