AGC040

AGC040

A

模拟。

B

因为顺序无关紧要,所以可以先把区间按右端点排序方便处理。
设第一个区间在\(A\)集合,考虑枚举第一个在\(B\)集合的区间\(i\),这样两个集合的右端点\(\min\)就确定了。再考虑\(i\)后面的区间中左端点最大的那个,假设它在\(A\)集合,那么把\(i\)后面的区间都放进\(A\)集合一定不劣,\(B\)集合同理。也就是说,最优方案一定形如:要么一段前缀在\(A\)集合一段后缀在\(B\)集合,要么\(B\)集合只有一个区间。

C

首先可以黑白染色,偶数位置的\(A\)变成\(B\)\(B\)变成\(A\)。问题变成不能删\(AA\)\(BB\)
然后我的想法是考虑删除所有\(C\),要求存在一种删除方案使得剩下的字符串中\(A,B\)个数相等,求合法字符串数,不太会做。然后我就打开了题解,发现我是个sb,其实只要字符串中\(A,B\)的个数分别\(\le \frac{n}{2}\)就行了。

D

对于一种排列,显然满足Ringo从\(p\)开始时Snuke能获胜的\(p\)是一段前缀。
画一条折线,\(x\)是距离,\(y\)是用时。那么将Ringo的折线垂直移动,使得它与Snuke的折线恰好有一个交点时,它与\(x\)轴的交点横坐标就是最大的\(p\)
枚举\((p,0)\)处对应的是哪一条线段,设为\(k\)。考虑这么一条折线\(C\)
\((p,0)\)出发,沿着Ringo的折线走到两条折线的交点处,再沿着Snuke的折线走到\((n,s)\),其中\(s=\sum a_i\)
容易发现每一种方案一定可以找出这么一条折线,且这么一条折线(从某个\((x,0)\)开始,先以斜率\(b_i\)向右上走,在某个点后变为以斜率\(a_i\)向右上走,走到\((n,s)\))能对应一种方案。\(p\)要尽量大,也就是说\(C\)要包含尽量少的线段,所以\(C\)上升的越快越好。
考虑一条放在\(k\)右边的线段\(i\)\(i\)最多使\(C\)上升\(\max(a_i,b_i)\),而这个上界是可以达到的,只要把\(a_i < b_i\)的放在两折线交点前面,其他的放在交点后面即可。那么找出除\(k\)\(\max(a_i,b_i)\)最大的若干个线段,假设有\(q\)个,要求\(b_k\)加这些线段的\(\max(a_i,b_i)\)之和\(\ge s\),且\(q\)尽量小。那么对于这个\(k\)\(C\)中包含线段数的整数部分就是\(q\),小数部分特殊计算一下即可。

E

先考虑简化版本,如果只有1操作怎么做?显然答案是\(a_i > a_{i+1}\)的个数。
再考虑原问题,考虑最终序列是怎样形成的。可以发现每一个位置的数都是若干次1操作和若干次2操作加出来的。那么每一个\(A\)可以拆成\(x+y\)\(x\)表示1操作对这个位置的贡献,\(y\)同理。那么问题就变成了,要决定序列\(x,y\),满足\(x_i+y_i=A_i\)\(x_i > x_{i+1}\)\(1\)的代价,\(y_i < y_{i+1}\)有1的代价,求代价最小值。
朴素的想法就是DP,\(f_{i,j}\)表示前\(i\)个数,\(x_i=j\)的最小代价。然后我又sb了,打开题解,显然\(f_{i,0} \le f_{i,A_i}+2\),维护转折点就行了。

F

可以规定两点距离\(\ge 2\)时才能对较左边的点用\(1\)操作,就变成了操作序列计数。
\((x,d)\)表示较右边的点在\(x\)处,两点距离为\(d\)。那么操作有三种:
1.\(++x,++d\)
2.当\(d \ge 2\)时,\(--d\)
3.设置\(d=0\)
1操作一定执行\(b\)次,考虑枚举2操作的次数\(k\)。注意到一个合法的操作序列(合法定义为每次执行2操作时\(d \ge 2\))删掉所有3操作后一定也合法,那么可以考虑先排列所有\(1,2\)操作,再往里面插入\(n-b-k\)\(3\)操作。考虑\(3\)操作插在哪些位置可以使序列合法且最终两点分别在\(a,b\)处。有几点限制(以下\(d'\)指忽略所有3操作得到的\(d\)):
1.结束后\(d=b-a\)。这说明最后一次3操作之前一定满足\(d'=a-k\)
2.任意时刻\(d \ge 2\)。这说明如果要在某个\(d'=k\)的位置后面插入一个\(3\)操作,那么这个位置后面不能出现\(d' \le k\)的位置。
也就是说,可以在最后一次\(d'=0,1,2,\dots,a-k\)的每个位置后面插入任意多个3操作,要求\(d'=a-k\)后面至少插入一个3操作。注意到这与1,2操作具体是怎样排列的无关,所以排列1,2操作和插入3操作是独立的。排列1,2操作的方案数就是一个基础的格路问题,插入3操作的方案数就是一个隔板法。

posted @ 2019-11-06 22:31  newbiegcz  阅读(728)  评论(4编辑  收藏