前三题过水。

D题 与 5+*的题解

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

E

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

首先如果有两个大于 \(1\) 的数相邻,就无限次,

否则一定有限次。

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

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

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

则 \(y\) 需要 \(tmp+tmp\times (x-1)+dis\),这很好理解,\(x\) 在 \(tmp\) 次之后消失了,给左边贡献了 \(tmp\times x\) 个 \(1\),而 \(tmp\) 次会消耗掉 \(tmp\) 个 \(1\),所以实际贡献了 \(tmp\times (x-1)\) 个 \(1\),再加上原本就有 \(dis\) 个 \(1\)。

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

F

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

因为题目里说了概率独立计算。所以如果第 \(j\) 台机器 \(x_j=y_j\),则第 \(x_j\) 张牌一定会翻;否则如果有多台机器都可能翻第 \(i\) 张,第 \(i\) 张翻的概率也还是 \(\dfrac{1}{2}\)。

把牌分成几个集合:\(a_i\ge b_i \in P,a_i\le b_i\in Q\)。

发现翻 \(Q\) 一定比翻 \(P\) 好。

所以先把所有 \(x,y\in Q\) 的机器开了,\(x,y\in P\) 的一定不开。

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

G

第 \(i\) 个盘子上面放了 \(a_i\) 个石头,有两种操作。

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

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

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

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

参考

ABC 313的更多相关文章

  1. Codeforces Round #313 (Div. 2) ABC

    A http://codeforces.com/contest/560/problem/A 推断给出的数能否组成全部自然数. 水题 int a[1010]; bool b[1000010]; int ...

  2. 【IOS】将一组包含中文的数据按照#ABC...Z✿分组

    上一篇文章[IOS]模仿windowsphone列表索引控件YFMetroListBox里面 我们一步步的实现了WindowsPhone风格的索引. 但是有没有发现,如果你要实现按照字母排序,你还得自 ...

  3. 在JS中关于堆与栈的认识function abc(a){ a=100; } function abc2(arr){ arr[0]=0; }

    平常我们的印象中堆与栈就是两种数据结构,栈就是先进后出:堆就是先进先出.下面我就常见的例子做分析: main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main( ...

  4. 学习Python的ABC模块(转)

    http://yansu.org/2013/06/09/learn-Python-abc-module.html 1.abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助a ...

  5. 将abc的全排列输出

    #include "iostream" using namespace std; void swap(char a[],int i,int j){ char temp; temp= ...

  6. 关于String str =new String("abc")和 String str = "abc"的比较

    String是一个非常常用的类,应该深入的去了解String 如: String str =new String("abc") String str1 = "abc&qu ...

  7. IE9 使用document.getElementsByName("abc") 不能获取到名称相同SPAN元素

    <div name="abc"></div> <input name="abc" type="text" /& ...

  8. 经典String str = new String("abc")内存分配问题

    出自:http://blog.csdn.net/ycwload/article/details/2650059 今天要找和存储管理相关的一些知识,网上搜了半天也没有找到完善的(30%的程度都不到),没 ...

  9. 再谈ABC

    最近一直在看蒋老师那13篇<我的WCF之旅>,终于看完了,看得很慢,记得最初出来工作的时候那时的技术总监建议我去看的,可几个月前我才开始看,看了几个月才把13篇看完.第一篇WCF的博文是我 ...

  10. Redis学习笔记之ABC

    Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...

随机推荐

  1. RL 基础 | 讲的很好的 TRPO 博客

    特意存档: 知乎 | 如何看懂TRPO里所有的数学推导细节? 感觉把 idea 讲的很清楚(虽然没有特别仔细看-

  2. Ubuntu Linux下的PDF阅读器推荐——Okular

    安装方法 在Ubuntu下直接使用sudo apt-get install okular即可,如果中间遇到依赖项的问题,可以通过运行sudo apt --fix-broken install来自动修复 ...

  3. Laravel - 使用ajax

    一,前台模板文件  index.blade.php <!DOCTYPE html> <meta name="_token" content="{{ cs ...

  4. 配置Chrome支持网页内的frame跨域

    前言 跨域限制可以保证安全,但是调试的时候关掉会更方便,然而现在网络上能找到的关闭跨域限制方法,在新版的Chrome浏览器上根本没用-- 经过一番摸索,发现用旧版的Chrome就可以绕过跨域限制,刚好 ...

  5. 使用 golang 开发 PHP 扩展

    使用 golang 开发 PHP 扩展 环境 golang go1.19.9 darwin/arm64 Macos/Linux PHP8.1.11 编译安装 实战 PHP脚手架生成 进入PHP源码,使 ...

  6. [转帖]FIO – IO压力测试工具

    https://blog.csdn.net/younger_china/article/details/71129541 <存储工具系列文章>主要介绍存储相关的测试和调试工具,包括不限于d ...

  7. [转帖]高性能异步io机制:io_uring

    文章目录 1.性能测试 1.1.FIO 1.2.rust_echo_benc 2.io_uring 2.1.io_uring_setup 2.2.io_uring_enter 2.3.io_uring ...

  8. 【发现一个问题】VictoriaMetrics中,vm-select与vm-storage之间的协议存在版本兼容性问题

    使用中发现,vm-select 1.76版本,查询vm-storage的1.70版本,报以下错误: cannot execute rpcName="search_v5" on vm ...

  9. 基于.Net Core3.1 MVC + EF Core的项目(一)框架的初步搭建

    项目暂时分为六大块,结构如图所示 代码地址是  https://github.com/hudean/VacantCloud-   里面有许多没有完成,不过一些大致的内容都写的差不多了,权限认证依赖注入 ...

  10. 4G5G和上网带宽与下载速度的换算方法

    前言 2020年5G越来越火热,而且运营商多次推出免费宽带升级,免费升级到100M,20M升级50M等等.很多人疑惑我们平时 的下载速度也就几百K或者有时候能上1M,但是就算升级到10M的宽带,也从来 ...