第十一届山东省大学生程序设计竞赛 L. Construction of 5G Base Stations(概率期望,递推前缀和优化)
整理的算法模板合集: ACM模板
点我看算法全家桶系列!!!
实际上是一个全新的精炼模板整合计划
第十一届山东省大学生程序设计竞赛 L. Construction of 5G Base Stations(概率期望,递推前缀和优化)
Weblink
https://ac.nowcoder.com/acm/contest/15600/L
Problem
数轴上 1∼n1\sim n1∼n,每个点都有一个人站在整点上。有 mmm 个基站,每个基站 {x,p[x]}\{x,p[x]\}{x,p[x]},代表位置为 xxx ,每一个人连接该基站成功的概率为 pxp_xpx。
每个人,都会按照由近及远,先左后右的顺序依次尝试连接基站,成功连接基站 iii 的概率是 pip_ipi ,如果都
失败了,那么重新再来一遍。
每个基站的开销是连接人数的平方。求所有基站期望运行总代价。
Solution
显然考虑几何概型。
Time
O(n)O(n)O(n)
Code
#include <bits/stdc++.h>using namespace std;
#define int long long
const int N = 1e6 + 7, mod = 998244353;int n, m;
int a[N];
int pre[N], pre2[N], suf[N], suf2[N];
int F, ans;
int p[N], now;int qpow(int a, int b)
{int res = 1;while(b) {if(b & 1) res = res * a % mod;a = a * a % mod;b >>= 1; }return res;
}int inv(int x)
{return qpow(x, mod - 2);
}signed main()
{F = 1;scanf("%lld%lld", &n, &m);for(int i = 1; i <= m; ++ i) {int x, pi;scanf("%lld%lld", &x, &pi);p[x] = pi;F = F * (1 - pi + mod) % mod;}if(n == 1) {puts("1");return 0;}F = inv(1 - F + mod);pre[2] = (1 - p[1] + mod) % mod;pre2[2] = (1 - p[1] + mod) % mod * (1 - p[1] + mod) % mod;now = (1 - p[1] + mod) % mod;for(int i = 3; i <= n; ++ i) {int ansb = (1 - p[i - 1] + mod) % mod * (1 - p[i - 2] + mod) % mod;//先左再右,x在右边now = now * (1 - p[i - 1] + mod) % mod;int ansa = pre[i - 2];pre[i] = (ansb * ansa % mod + ansb + now) % mod;ansa = pre2[i - 2];pre2[i] = (ansb * ansb % mod * ansa % mod + ansb * ansb % mod + now * now % mod) % mod;}suf[n - 1] = (1 - p[n] + mod) % mod;suf2[n - 1] = (1 - p[n] + mod) % mod * (1 - p[n] + mod) % mod;now = (1 - p[n] + mod) % mod;for(int i = n - 2; i >= 1; -- i) {int ansb = (1 - p[i + 1] + mod) % mod * (1 - p[i + 2] + mod) % mod;int tmp = (1 - p[i + 1] + mod) % mod;//先左再右,x在左边now = now * (1 - p[i + 1] + mod) % mod;int ansa = suf[i + 2];suf[i] = (ansb * ansa % mod + tmp + now) % mod;ansa = suf2[i + 2];suf2[i] = (ansb * ansb % mod * ansa % mod + tmp * tmp % mod + now * now % mod) % mod;}for(int i = 1; i <= n; ++ i) {int A = (pre[i] + 1 + suf[i]) % mod * p[i] % mod * F % mod;int B = (pre2[i] + 1 + suf2[i]) % mod * p[i] % mod * p[i] % mod * F % mod * F % mod;ans = (ans + A * A % mod - B + A + mod) % mod;}printf("%lld\n", ans);return 0;
}
第十一届山东省大学生程序设计竞赛 L. Construction of 5G Base Stations(概率期望,递推前缀和优化)相关推荐
- 第十一届山东省大学生程序设计竞赛题解(9 / 13)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 VP了一下,体验不是太好,区分度不是很好,简单题太简单,难题看着就不想写-没什么意思 比赛地址: ht ...
- 【B类竞赛】第十一届山东省大学生程序设计竞赛 比赛经历
序言 去年因为疫情没有举办省赛,导致两年的省赛隔了一年,少参加了一次,血亏. 四月ACM内部选拔赛的时候,用了2017年的山东省省赛题,用个人赛的形式打的,做出来五题,放在当年是可以拿银牌的.队友wz ...
- 第十一届山东省大学生程序设计竞赛(热身赛)Mika with Cherry Cake
#include <bits/stdc++.h> using namespace std ; int n ; struct node {int x , y ; }a[5200] ; int ...
- ICPC 山东省省赛刷题 第十一届山东省大学生程序设计竞赛 ACM省赛 牛客 DGHM题
D Dyson Box 题意:有n步,每一步都会出现一个方块,求重力向下和重力向左的方块掉下去的结果图形的周长. 分析:考虑到每个方块周长为4,如果这个方向下有方块的话,就会-2(因为上下两个方块有一 ...
- 河南计算机程序大赛,我院成功举办河南省第十一届ACM大学生程序设计竞赛
5月26-27日,由ACM/ICPC亚洲区竞赛组委会授权.河南省计算机学会主办.我校承办的河南省第十一届ACM大学生程序设计竞赛在我校举行.来自省内30余所本科院校的215支参赛队645名学生参加了竞 ...
- 河南省第十一届ACM大学生程序设计竞赛题目
河南省第十一届ACM大学生程序设计竞赛题目 A.计划日 B.治安管理 C.山区修路 E.物流配送 F.Gene mutation G.Checkpoints H.Attack City Capture ...
- 【超好懂的比赛题解】“山大地纬杯”第十二届山东省ICPC大学生程序设计竞赛(正式赛)
title : "山大地纬杯"第十二届山东省ICPC大学生程序设计竞赛(正式赛) date : 2022-5-30 tags : ACM,题解,练习记录 author : Linn ...
- “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (K L题解)
"亚信科技杯"南邮第七届大学生程序设计竞赛之网络预赛 (K L题解) 第一次出题,果然背锅了,L题由于数据问题,让两种不对的方法ac了,分别是:H<0时取前一天送上花(应该是 ...
- 山东省第五届ACM大学生程序设计竞赛 Weighted Median
Weighted Median Time Limit: 2000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 For n elements x1, x2, .. ...
最新文章
- Python 字典的 使用
- Python之%s%d%f
- 2020年12月大学英语四六级英语作文预测(XDF王江涛)
- 首发:一份国内机器学习爱好者的性别比例的抽样调查
- 2016 server sql 错误53_MS SQL Server 错误53 错误17是什么?如何解决
- 关于ArcGIS Rest API
- oracle 只导出指定的表格,expdp带条件导出单个表的数据
- 机器学习中的数学(六)--信息论与激活函数
- 判断某个字符出现的次数
- 历经万难,终于搭好深度学习环境[吐血总结篇,造福后人]
- SSH 命令的11种用法
- Python猜数字游戏(包含异常处理,可自定义随机数产生范围、最大猜测次数,如果用户猜错的话可根据输入情况缩小猜测范围)
- 宽带路由器中关于IP带宽控制功能的详解
- leet290单词规律
- android 百度地图 itemizedoverlay,[008] 百度地图API之ItemizedOverlay的使用(Android)
- PHP+ mysql实现注册登录功能
- SRAM随机存储器的特点及结构
- 映射表类(CMap)
- 鼠标经过爆炸效果html,jquery鼠标滑过爆炸特效插件
- go juju/ratelimit 简单使用示例