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

190012=1888。怎么 rating 还是这么好笑。

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

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

A

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

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

B

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

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

C

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

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

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

D

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

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

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

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

E

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

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

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

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

F

给出排列 p,构造排列 q 使 qqp 的逆序对数之和为 k

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

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

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

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

GHI

没看了。

本文作者:PrimalAspid

本文链接:https://www.cnblogs.com/hagasei/p/18121261

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   PrimalAspid  阅读(84)  评论(1编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起