【NOIP2019模拟2019.9.4】B(期望的线性性)
题目描述:

\(1<=n,ai<=5*10^5\)
题解:
我是弱智我不会期望线性。
设\(E(a[i])\)表示第i个期望被减的个数。
\(E(a[1])=a[1]\)
不难发现\(E(a[i])(i>1)\)之间互不影响,其实这很难。
考虑固定这两个,它们两个选到的概率一样,选到其它的就无视就好了。
那么只用考虑\(n=2\)的情况,这个直接暴力枚举\(a[1]\)结束时\(a[i]\)有几个,乘个\(1\over 2\)的几次方和组合数,式子如下:
\(=a[i]-\sum_{i=0}^{a[i]-1}C_{a[1]-1+i}^{a[i]-1}*{1\over2}^{a[1]+i}*(a[i]-i)\)
可以用递推的方法依次求出\(a[i]=1,2,3…\)的答案。
时间复杂度:\(O(n+max(a))\)
Code:
#include<bits/stdc++.h>
#define fo(i, x, y) for(int i = x, B = y; i <= B; i ++)
#define ff(i, x, y) for(int i = x, B = y; i < B; i ++)
#define fd(i, x, y) for(int i = x, B = y; i >= B; i --)
#define ll long long
#define pp printf
#define hh pp("\n")
using namespace std;
const int mo = 323232323;
ll ksm(ll x, ll y) {
ll s = 1;
for(; y; y /= 2, x = x * x % mo)
if(y & 1) s = s * x % mo;
return s;
}
const ll ni2 = ksm(2, mo - 2);
const int N = 1e6 + 5;
int n, a[N];
ll fac[N], nf[N], a2[N];
void build(int n) {
fac[0] = 1; fo(i, 1, n) fac[i] = fac[i - 1] * i % mo;
nf[n] = ksm(fac[n], mo - 2); fd(i, n, 1) nf[i - 1] = nf[i] * i % mo;
a2[0] = 1; fo(i, 1, n) a2[i] = a2[i - 1] * ni2 % mo;
}
ll C(int n, int m) {
return fac[n] * nf[m] % mo * nf[n - m] % mo;
}
ll f[N], g[N];
int main() {
freopen("b.in", "r", stdin);
freopen("b.out", "w", stdout);
scanf("%d", &n);
fo(i, 1, n) scanf("%d", &a[i]);
build(1e6 + 2);
fo(i, 0, 5e5) {
if(i) f[i] = f[i - 1], g[i] = g[i - 1];
f[i] = (f[i] + a2[a[1] + i] * C(a[1] + i - 1, i)) % mo;
g[i] = (g[i] + a2[a[1] + i] * C(a[1] + i - 1, i) % mo * i) % mo;
}
ll ans = a[1];
fo(i, 2, n) {
ans += a[i];
ans -= (f[a[i] - 1] * a[i] - g[a[i] - 1]) % mo;
}
ans = (ans % mo + mo) % mo;
pp("%lld\n", ans);
}
【NOIP2019模拟2019.9.4】B(期望的线性性)的更多相关文章
- [JZOJ6340] 【NOIP2019模拟2019.9.4】B
题目 题目大意 给你个非负整数数列\(a\),每次等概率选择大于零的\(a_i\),使其减\(1\). 问\(a_1\)被减到\(0\)的时候期望经过多少次操作. 思考历程 对于这题的暴力做法,显然可 ...
- bzoj1415[NOI2005]聪聪和可可-期望的线性性
这道题之前我写过一个巨逗比的写法(传送门:http://www.cnblogs.com/liu-runda/p/6220381.html) 当时的原因是这道题可以抽象出和"绿豆蛙的归宿&qu ...
- 浅谈期望的线性性(可加性)【CodeForces280c】【bzoj3036】【bzoj3143】
[pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=63399955 向大(hei)佬(e)势力学(di ...
- 6424. 【NOIP2019模拟2019.11.13】我的订书机之恋
题目描述 Description Input Output Sample Input 见下载 Sample Output 见下载 Data Constraint 题解 lj题卡线段树 求出每个右端点往 ...
- 6392. 【NOIP2019模拟2019.10.26】僵尸
题目描述 题解 吼题但题解怎么这么迷 考虑一种和题解不同的做法(理解) 先把僵尸离散化,h相同的钦(ying)点一个大小 (可以发现这样每种情况只会被算正好一次) 计算完全被占领的方案,然后1-方案/ ...
- 6389. 【NOIP2019模拟2019.10.26】小w学图论
题目描述 题解 之前做过一次 假设图建好了,设g[i]表示i->j(i<j)的个数 那么ans=∏(n-g[i]),因为连出去的必定会构成一个完全图,颜色互不相同 从n~1染色,点i的方案 ...
- 6377. 【NOIP2019模拟2019.10.05】幽曲[埋骨于弘川]
题目描述 题解 随便bb 详细题解见 https://www.cnblogs.com/coldchair/p/11624979.html https://blog.csdn.net/alan_cty/ ...
- 6364. 【NOIP2019模拟2019.9.20】养马
题目描述 题解 一种显然的水法:max(0,-(点权-边权之和*2)) 这样会挂是因为在中途体力值可能会更小,所以考虑求走完每棵子树所需的至少体力值 考虑从子树往上推求出当前点的答案 设每棵子树从根往 ...
- 6362. 【NOIP2019模拟2019.9.18】数星星
题目描述 题解 一种好想/好写/跑得比**记者还快的做法: 对所有询问排序,按照R递增的顺序来处理 维护每个点最后一次被覆盖的时间,显然当前右端点为R时的答案为所有时间≥L的点的权值之和 LCT随便覆 ...
随机推荐
- JAVA 输入输出程序开发
参考: java中 静态方法和非静态方法的区别 字符流的输入和输出 java文件创建.删除.读取.写入操作大全 Java键盘输入并且写入文件 File类的isDiretory Java统计子串在字符串 ...
- 使用springBoot完成阿里云短信验证
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...
- 【Shell】ps -ef 和ps aux
两者没太大差别 追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同.现 ...
- 如何更改PHPCMS网站后台标题(title)
打开PHPCMS安装目录,选择phpcms 然后选择Languages目录,打开. 打开目录后,选择zh-cn目录,选择admin.lang.php用editPlus打开,将第九行后面的引号中的内容换 ...
- Struts2增删改查(自己思路理解)
1:查询所有: DAO层:把所有的信息都放到list集合中.然后返回. public List<Employee> getEmployees(){ return new ArrayList ...
- Network基础(一):配置计算机名及工作组、TCP/IP地址配置、网络连通性测试
一.配置计算机名及工作组 目标: 本例要求为修改计算机名并加入工作组: 设置计算机名:姓名拼音 设置工作组名:TARENA-NETWORK 方案: 修改Windows 2008服务器的计算机名(可设为 ...
- Node.js环境下通过Express创建Web项目
通过Express命令创建项目 Express 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具. 使用 Express ...
- Django中object.all是什么东西
前言 先抛出一个问题.银行就相当于一个数据库,你去银行取钱存钱办卡销卡,是你告诉银行柜员方便还是你自己去操作电脑办卡取卡方便?(你还不一定会,假设自动存款机还没发明),object在数据库中就相当于银 ...
- Android数字签名的学习(转)
转载地址:http://www.cnblogs.com/feisky/archive/2010/01/17/1650076.html 在Android系统中,所有安装到系统的应用程序都必有一个数字证书 ...
- 建站手册-浏览器信息:Internet Explorer 浏览器
ylbtech-建站手册-浏览器信息:Internet Explorer 浏览器 1.返回顶部 1. http://www.w3school.com.cn/browsers/browsers_inte ...