整理的算法模板合集: 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(概率期望,递推前缀和优化)相关推荐

  1. 第十一届山东省大学生程序设计竞赛题解(9 / 13)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 VP了一下,体验不是太好,区分度不是很好,简单题太简单,难题看着就不想写-没什么意思 比赛地址: ht ...

  2. 【B类竞赛】第十一届山东省大学生程序设计竞赛 比赛经历

    序言 去年因为疫情没有举办省赛,导致两年的省赛隔了一年,少参加了一次,血亏. 四月ACM内部选拔赛的时候,用了2017年的山东省省赛题,用个人赛的形式打的,做出来五题,放在当年是可以拿银牌的.队友wz ...

  3. 第十一届山东省大学生程序设计竞赛(热身赛)Mika with Cherry Cake

    #include <bits/stdc++.h> using namespace std ; int n ; struct node {int x , y ; }a[5200] ; int ...

  4. ICPC 山东省省赛刷题 第十一届山东省大学生程序设计竞赛 ACM省赛 牛客 DGHM题

    D Dyson Box 题意:有n步,每一步都会出现一个方块,求重力向下和重力向左的方块掉下去的结果图形的周长. 分析:考虑到每个方块周长为4,如果这个方向下有方块的话,就会-2(因为上下两个方块有一 ...

  5. 河南计算机程序大赛,我院成功举办河南省第十一届ACM大学生程序设计竞赛

    5月26-27日,由ACM/ICPC亚洲区竞赛组委会授权.河南省计算机学会主办.我校承办的河南省第十一届ACM大学生程序设计竞赛在我校举行.来自省内30余所本科院校的215支参赛队645名学生参加了竞 ...

  6. 河南省第十一届ACM大学生程序设计竞赛题目

    河南省第十一届ACM大学生程序设计竞赛题目 A.计划日 B.治安管理 C.山区修路 E.物流配送 F.Gene mutation G.Checkpoints H.Attack City Capture ...

  7. 【超好懂的比赛题解】“山大地纬杯”第十二届山东省ICPC大学生程序设计竞赛(正式赛)

    title : "山大地纬杯"第十二届山东省ICPC大学生程序设计竞赛(正式赛) date : 2022-5-30 tags : ACM,题解,练习记录 author : Linn ...

  8. “亚信科技杯”南邮第七届大学生程序设计竞赛之网络预赛 (K L题解)

    "亚信科技杯"南邮第七届大学生程序设计竞赛之网络预赛 (K L题解) 第一次出题,果然背锅了,L题由于数据问题,让两种不对的方法ac了,分别是:H<0时取前一天送上花(应该是 ...

  9. 山东省第五届ACM大学生程序设计竞赛 Weighted Median

    Weighted Median Time Limit: 2000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 For n elements x1, x2, .. ...

最新文章

  1. Python 字典的 使用
  2. Python之%s%d%f
  3. 2020年12月大学英语四六级英语作文预测(XDF王江涛)
  4. 首发:一份国内机器学习爱好者的性别比例的抽样调查
  5. 2016 server sql 错误53_MS SQL Server 错误53 错误17是什么?如何解决
  6. 关于ArcGIS Rest API
  7. oracle 只导出指定的表格,expdp带条件导出单个表的数据
  8. 机器学习中的数学(六)--信息论与激活函数
  9. 判断某个字符出现的次数
  10. 历经万难,终于搭好深度学习环境[吐血总结篇,造福后人]
  11. SSH 命令的11种用法
  12. Python猜数字游戏(包含异常处理,可自定义随机数产生范围、最大猜测次数,如果用户猜错的话可根据输入情况缩小猜测范围)
  13. 宽带路由器中关于IP带宽控制功能的详解
  14. leet290单词规律
  15. android 百度地图 itemizedoverlay,[008] 百度地图API之ItemizedOverlay的使用(Android)
  16. PHP+ mysql实现注册登录功能
  17. SRAM随机存储器的特点及结构
  18. 映射表类(CMap)
  19. 鼠标经过爆炸效果html,jquery鼠标滑过爆炸特效插件
  20. go juju/ratelimit 简单使用示例

热门文章

  1. 张量解释——深度学习的数据结构
  2. 一行命令搞定图像质量评价 | 附代码和操作步骤
  3. 线扫相机——机器视觉中无限制物体的检测
  4. Transformer 超详细解读,一图胜千言
  5. 【分享】计算机视觉方向必备opencv基础知识总览
  6. 深度解析 PouchContainer 的富容器技术
  7. git for c#, clone方法
  8. mongo实现消息队列
  9. 最详细的JavaScript和事件解读
  10. css 商城 两列_如何使用css伪元素实现超实用的图标库(附源码)