前三题过水。

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. 每天学五分钟 Liunx 101 | 存储篇:LVM

    LVM LVM(Logical Volume Manager),逻辑卷管理器.一种高级文件系统管理方式,它可以动态扩展文件系统.   LVM 的示意图如下所示:

  2. maven总结三: 常用插件

    本文为博主原创,转载请注明出处: 目录: 1. maven-release-plugin 2. maven-compiler-plugin 3. maven-assembly-plugin 4. sp ...

  3. AHB Matrix

    常用的AHB Bus结构 AHB Matrix AHB Bus Matrix,即总线矩阵,其实际上就是一个互连(Interconnect).用于连接满足该总线协议的外设,包括Master和Slave. ...

  4. css - 编写 兼容到ie7的导航

    1, index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  5. Redis-键

  6. [转帖]Oracle11g实现只读表方法

    1.1 ALTER TABLE tab_name READ ONLY 参考:https://www.cnblogs.com/chinas/p/8440460.html Oracle 11g开始支持设置 ...

  7. Kafka的部分初始化参数的学习与整理

    Kafka的部分初始化参数的学习与整理 背景 前段时间跟同事一起处理过kafka的topic offset的retention 时间与 log 的retention时间不一致. 导致消息还有, 但是o ...

  8. [转帖]MySQL快速备份表

    https://www.cnblogs.com/JaxYoun/p/14264593.html 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会 ...

  9. [转帖]strace 命令详解

    目录 1.strace是什么? 2.strace能做什么? 3.strace怎么用? 4.strace问题定位案例 4.1.定位进程异常退出 4.2.定位共享内存异常 4.3. 性能分析 5.总结 1 ...

  10. [转帖]发布即巅峰!万字长文:Java性能调优六大工具:MAT内存分析工具

    jianshu.com/p/4ed3dd8b7b83 MAT是MemoryAnalyzerTool的简称,它是一款功能强大的Java堆内存分析器,可以用于查找内存泄漏以及查看内存消耗情况.MAT是 基 ...