ABC 313
前三题过水。
注意:交互题每输出一次,就要 fflush(stdout);
一次
其实不是太难,但是赛时一直在搓 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\) 加一下就得出答案了。
有 \(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\) 的一定不开。
对于剩下的,有两种处理方法,参考这个。懒得写了
第 \(i\) 个盘子上面放了 \(a_i\) 个石头,有两种操作。
从所有有石头的盘子上取一个存着;
拿出 \(n\) 个石头给每个盘子发一个。
求经过若干次操作后,每个盘子剩余石头构成数组 \(b\),\(b\) 有多少种可能。
观察:如果做了 1 马上做 2 又做 1,其实等价于做一次 1.所以最后的操作序列一定形如 111111222222
ABC 313的更多相关文章
- Codeforces Round #313 (Div. 2) ABC
A http://codeforces.com/contest/560/problem/A 推断给出的数能否组成全部自然数. 水题 int a[1010]; bool b[1000010]; int ...
- 【IOS】将一组包含中文的数据按照#ABC...Z✿分组
上一篇文章[IOS]模仿windowsphone列表索引控件YFMetroListBox里面 我们一步步的实现了WindowsPhone风格的索引. 但是有没有发现,如果你要实现按照字母排序,你还得自 ...
- 在JS中关于堆与栈的认识function abc(a){ a=100; } function abc2(arr){ arr[0]=0; }
平常我们的印象中堆与栈就是两种数据结构,栈就是先进后出:堆就是先进先出.下面我就常见的例子做分析: main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main( ...
- 学习Python的ABC模块(转)
http://yansu.org/2013/06/09/learn-Python-abc-module.html 1.abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助a ...
- 将abc的全排列输出
#include "iostream" using namespace std; void swap(char a[],int i,int j){ char temp; temp= ...
- 关于String str =new String("abc")和 String str = "abc"的比较
String是一个非常常用的类,应该深入的去了解String 如: String str =new String("abc") String str1 = "abc&qu ...
- IE9 使用document.getElementsByName("abc") 不能获取到名称相同SPAN元素
<div name="abc"></div> <input name="abc" type="text" /& ...
- 经典String str = new String("abc")内存分配问题
出自:http://blog.csdn.net/ycwload/article/details/2650059 今天要找和存储管理相关的一些知识,网上搜了半天也没有找到完善的(30%的程度都不到),没 ...
- 再谈ABC
最近一直在看蒋老师那13篇<我的WCF之旅>,终于看完了,看得很慢,记得最初出来工作的时候那时的技术总监建议我去看的,可几个月前我才开始看,看了几个月才把13篇看完.第一篇WCF的博文是我 ...
- Redis学习笔记之ABC
Redis学习笔记之ABC Redis命令速查 官方帮助文档 中文版本1 中文版本2(反应速度比较慢) 基本操作 字符串操作 set key value get key 哈希 HMSET user:1 ...
随机推荐
- freeswitch的2833和inband对接方案
概述 freeswitch支持三种模式的DTMF传输方式,分别时inband.INFO.2833. 在传统的PSTN网络中,所有的DTMF码都是inband模式,所以VOIP网络和PSTN网络对接中, ...
- C#设计模式05——抽象工厂的写法
C# 抽象工厂是一种创建型设计模式,它提供了一种封装一组相关或相互依赖对象创建的方法.该模式使得客户端能够创建与应用程序所使用的特定工厂无关的对象. 以下是C#抽象工厂5W1H的解释: 1. What ...
- zookeeper 使用api 进行节点增删改查及实现简易的配置中心
本文为博主原创,未经允许不得转载: 目录: 1. 对 zookeeper 节点进行增删改查既配置acl 权限等 2.使用 zookeeper 实现一个简易的配置中心 1. 对 zookeeper 节 ...
- [转帖]全表扫描却产生大量db file sequential read一例
老熊 Oracle性能优化 2012-05-23 开发人员在进行新系统上线前的数据校验测试时,发现一条手工执行的SQL执行了超过1小时还没有返回结果.SQL很简单: SELECT * FROM MOB ...
- [转帖]技术分享 | MySQL:一文弄懂时区&time_zone
https://opensource.actionsky.com/20211214-time_zone/ 作者:胡呈清 爱可生 DBA 团队成员,擅长故障分析.性能优化,个人博客:https:// ...
- [转帖]Linux终端:用cat命令查看不可见字符
https://developer.aliyun.com/article/80607 printf 'testing\012\011\011testing\014\010\012more testin ...
- [转帖]QPS 最高提升 91% | 腾讯云 TKE 基于 Cilium eBPF 提升 k8s Service 性能
https://my.oschina.net/cncf/blog/5121393 朱瑜坚,腾讯云后台工程师,主要负责腾讯云 TKE 容器网络的构建和相关网络组件的设计.开发和维护工作.张浩,腾讯云 ...
- [转帖]MIPS和ARM授权差异引起的龙芯路线变迁
https://zhuanlan.zhihu.com/p/99807721 一.MIPS和ARM授权的异同 MIPS授权和ARM授权都分为处理器核授权(Core License)和架构授权(Archi ...
- [转帖]一个故事看懂CPU的TLB
https://www.cnblogs.com/xuanyuan/p/15347054.html Hi,我是CPU一号车间的阿Q,还记得我吗,真是好久不见了- 我所在的CPU是一个八核CPU,就有八个 ...
- mysql系列基础篇03----约束
一.概述 1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据 2.目的:保证数据库中数据的正确,有效性和完整性. 3.分类 二.约束演示 创建一个用户表 create table my ...