我要点名一款十字线上 PVP 游戏 - 1951

\(1900-12=1888\)。怎么 rating 还是这么好笑。

感觉每回打 cf 都要破防是怎么回事?被诈骗不还是因为菜?交 \(12\) 发不知道自己是怎么想的。然后 E 也不难,但是太晚了打不动了。

下次交代码之前能不能拜托先把 hack 测一下?占了将近一半的 RE 哪个不是因为没开 long long

A

01 字符串,初始全是 0,每次把两个不相邻的 0 变成 1,问能不能变成指定的 \(s\)

不行当且仅当 1 数量为奇或只有两个 1 且它们相邻。

B

\(n\) 头奶牛打架,每头都有自己的战力 \(a_i\)(各不相同),打架胜出者一定是战力更高者。打架顺序是先 1 跟 2 打,然后赢家跟 3 打,然后赢家跟 4 打,直到 \(n\)。然后 Bessie 是第 \(k\) 头奶牛,她能跟一只奶牛交换位置,并想最大化自己打赢的场数。

要么跟 1 换,要么跟第一个大于她的换。

C

买东西。第 \(i\) 天价格 \(a_i\),每天最多买 \(m\) 个,每买一个东西,之后的天里价格都加一(当天不变),问买 \(k\) 个最少花费。

这个题主要看思考方向,方向对了就秒杀。

注意到在任意购买方案基础上在某天添加一个,总花费变化量是(这天原本价格)+(之前的天买的总数)+(之后的天买的总数)。于是你惊讶地发现排列顺序不影响答案,并且直接贪心就是对的。

D

卖东西。你可以建立至多 \(\red{60}\) 个摊位卖这个东西并对每个摊位设置一个价格,爱丽丝身上有 \(n\) 块钱。她会依次光临这些摊位:在一个摊位购买这个东西直到买不起再前往下一个买买买(什么败家波特)。你想让她恰好买 \(k\) 个东西,构造一个设价格方法。(\(n,k\leq\red{10^{18}}\)

不会出题可以不出。看到标红的两个数字了吗?哦我的上帝啊,\(2^{60}\approx10^{18}\) 嘛对不对?于是我像一只愚蠢的土拨鼠一样想了好久二进制并被 \(n=8,k=3\) 整破防了。然后我又觉得这个是保证对数级复杂度上界的,我真像那邻居家的蠢驴约翰太太一样,想了好久怎么贪心,怎么保证每次规模至少减小一半并被 \(n=16,k=5\) 整破防了。后来写了一个暴力 DP 并输出 pre,我真想用我两只脚上的靴子狠狠地分别踢我和出题人的屁股!

首先 \(n<k\) 无解,\(n=k\) 有解,然后 \(k>\lceil n/2\rceil\) 无解,这是因为即使价格设到 \(2\)\(n,k\)\(2:1\) 的比例减小,\(k\) 依旧无法 \(\leq\lceil n/2\rceil\),另一方面没有比 \(2:1\) 更小的比例使达到 \(n=k\),又最小情况 \(4,3\) 无解,证毕。这些都很显然,我拿到题就想到了,但是更显然的部分是对于 \(k\leq\lceil n/2\rceil\),令价格 \(p_1=n-k+1\),则一次购买后 \(n\to k-1,k\to k-1\),再令 \(p_2=1\) 就好了。🙂

想不到主要是因为先入为主地认为价格至少要少于 \(n\) 一半才优,不然 \(\red{60}\) 不够,谁知道这么诈骗呢?

E

将一个字符串分成若干子串使均无回文或报告无解。

怎么又是 constructive algorithms。你们 Veitnam 人均建筑师吗?被 D 骗麻了以及被自己气麻了就没仔细想了,其实讲道理是做得出来的。

首先全一样无解,原本就不是回文无解。找到第一个位置 \(t\) 使 \([1,t]\) 不是回文(则 \([1,t]\) 一定形如 \(\texttt{a...ab}\),令 \(\texttt{@ = a...a}\)),如果 \([t+1,n]\) 也不是回文的话就结束了。否则,由于原串是回文,一定有 \(t\leq\lceil n/2\rceil\)。更进一步,由于原串和 \([t+1,n]\) 都是回文,所以整个串一定形如 \(\texttt{@b@b@...b@b@}\)(这个好像是个经典回文结论,关于回文套回文且另一边不是回文,但是我给忘记了)。然后如果 \(\texttt{@}\) 长为 \(1\)\(\texttt{abababa}\))或者 \(\texttt{b}\) 数量为 \(1\)\(\texttt{aaabaaa}\))的情况无解,其他随便从中间某个 \(\texttt{@}\) 中间切一刀就好了,全都有解。

但是问题是三种无解情况我全都一眼发现了,但是我认为这个分割会递归下去然后整蒙了。结论是思考需要 bfs。

F

给出排列 \(p\),构造排列 \(q\) 使 \(q\)\(q\circ p\) 的逆序对数之和为 \(k\)

怎么又是 constructive algorithms。你们 Veitnam 人均建筑师吗?

具体怎么构造懒得写了,感觉描述起来很复杂,主要是 mark 一下这个性质:

  • \((i,j)\)\(p,q,q\circ p\) 上作为逆序对一定共计出现 \(0\)\(2\) 次。易证。

然后就构造 \(q\) 使恰好有【用 \(k\)\(p\) 的逆序数算一算就知道的一个常数】对在 \(p\) 上顺序的逆序对就好了。

GHI

没看了。

posted @ 2024-04-08 16:45  PrimalAspid  阅读(102)  评论(1)    收藏  举报