ABC 313

前三题过水。

D题 与 5+*的题解

注意:交互题每输出一次,就要 fflush(stdout); 一次

E

其实不是太难,但是赛时一直在搓 D 还没搓出来

首先如果有两个大于 1 的数相邻,就无限次,
否则一定有限次。

手玩几个样例,发现每迭代一次,最右边的非 1 的数会往右移一位。受此启发,我们考虑每个非 1 的数需要右移几次才会消失。(如果第一个数就是非 1 数,不考虑,因为它不会做贡献)

再多玩几个样例,发现相邻的两个非 1 的数,需要的右移次数存在递推关系。

假设靠右的非 1 的数为 x,需要 tmp 次才会消失,靠左的非 1yx 距离 dis(在原本的字符串中)。

y 需要 tmp+tmp×(x1)+dis,这很好理解,xtmp 次之后消失了,给左边贡献了 tmp×x1,而 tmp 次会消耗掉 tmp1,所以实际贡献了 tmp×(x1)1,再加上原本就有 dis1

于是我们从右到左求出了最左边的非 1 数需要 t 次消失。最后求这个非 1 数贡献了多少个 1,然后和 t 加一下就得出答案了。

F

n 张牌 m 台机器,每张牌正反面各有一个数 ai,bi。第 i 台机器有两个参数 xi,yi,表示有 1/2 的概率翻 xi,有 1/2 的概率翻 yi(概率独立计算)。任意开启若干台机器后,所有牌正面朝上的数的和的期望值 最大是多少。

因为题目里说了概率独立计算。所以如果第 j 台机器 xj=yj,则第 xj 张牌一定会翻;否则如果有多台机器都可能翻第 i 张,第 i 张翻的概率也还是 12

把牌分成几个集合:aibiP,aibiQ

发现翻 Q 一定比翻 P 好。

所以先把所有 x,yQ 的机器开了,x,yP 的一定不开。

对于剩下的,有两种处理方法,参考这个懒得写了

G

i 个盘子上面放了 ai 个石头,有两种操作。

  1. 从所有有石头的盘子上取一个存着;

  2. 拿出 n 个石头给每个盘子发一个。

求经过若干次操作后,每个盘子剩余石头构成数组 bb 有多少种可能。

观察:如果做了 1 马上做 2 又做 1,其实等价于做一次 1.所以最后的操作序列一定形如 111111222222

参考

posted @   FLY_lai  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示