CF1009E Intercity Travelling
CF1009E Intercity Travelling
题意:
有一段路程,路程可以看作是从0到n的一条直线
如果从起点出发或者从休息点出发,连续驾驶k千米,则需要消耗的体能为a1+…+ak
每个整点都有可能拥有一个休息点,每个休息点存在或者不存在的概率想等的。
求整个旅程消耗的体能的期望为p,输出p∗2n−1p*2^{n-1}p∗2n−1
题解:
最后别忘乘2n−12^n-12n−1
代码:
#include <bits/stdc++.h>
#define LL long long
#define MAXN 1000005
#define P int(998244353)
using namespace std;int N;
LL a[MAXN], s[MAXN];
LL pw[MAXN];
LL dp[MAXN], s1[MAXN], s2[MAXN];/*
dp[i] = (s[i] + sum{(dp[j]+s[i-j])*2^(j-1)})/2^(i-1), j = 1...i-1= (s[i] + sum{dp[j]*2^(j-1)} + 2^(i-1)*sum{s[i-j]/2^(i-j)})/2^(i-1)= s[i]/2^(i-1) + sum{dp[j]*2^j}/2^i + sum{s[j]/2^j}, j=1...i-1
*/LL qpow(LL x, int n){LL res = 1;while(n){if(n & 1) res = res * x % P;x = x * x % P;n /= 2;}return res;
}int main(){scanf("%d", &N);pw[0] = 1;for(int i=1;i<=N;i++){scanf("%d", &a[i]);s[i] = (s[i-1] + a[i]) % P;pw[i] = pw[i-1] * 2 % P;}for(int i=1;i<=N;i++){dp[i] = (s[i]*qpow(pw[i-1], P-2)%P + s1[i-1]*qpow(pw[i], P-2)%P + s2[i-1]%P)%P;s1[i] = (s1[i-1] + dp[i]*pw[i]%P)%P;s2[i] = (s2[i-1] + s[i]*qpow(pw[i],P-2)%P)%P;}printf("%lld\n", dp[N]*pw[N-1]%P);return 0;
}
CF1009E Intercity Travelling相关推荐
- Educational Codeforces Round 47 (Rated for Div. 2) :E. Intercity Travelling
题目链接:http://codeforces.com/contest/1009/problem/E 解题心得: 一个比较简单的组合数学,还需要找一些规律,自己把方向想得差不多了但是硬是找不到规律,还是 ...
- CF Edu 47E. InterCity Travelling 期望线性,打表
题意:n个关卡,第i个关卡得分为a[i]. 若第i个关卡存在机关,那么[i+1,n]关卡的得分为 [a[1],a[2]....]. 第n个关卡不能放机关,那么总共有2^(n-1)种方法. n,a[i] ...
- Educational Codeforces Round 47 (Div 2) (A~G)
目录 Codeforces 1009 A.Game Shopping B.Minimum Ternary String C.Annoying Present D.Relatively Prime Gr ...
- PAT甲级1150 Travelling Salesman Problem:[C++题解]旅行商问题、图论
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 旅行商问题:访问每个城市并回到原城市的最短路. 思路: 1)判断相邻两点有无距离(NA):2)每个点是否都能到:3)是否是回路:4) ...
- JavaScript实现Travelling Salesman算法(附完整源码)
JavaScript实现Travelling Salesman算法(附完整源码) bfTravellingSalesman.js完整源代码 bfTravellingSalesman.js完整源代码 f ...
- cf1504. Travelling Salesman Problem
cf1504. Travelling Salesman Problem 题意: n个城市,编号1~n,每个城市有美丽值a[i],现在要从城市1出发,其他所有城市走一遍,最后回到城市1,城市i到j的花费 ...
- PAT 1150 Travelling Salesman Problem(25 分)- 甲级
The "travelling salesman problem" asks the following question: "Given a list of citie ...
- bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1293 Solved ...
- BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】
1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...
最新文章
- PyTorch 1.6、TensorFlow 2.3、Pandas 1.1同日发布!都有哪些新特性?
- exchange 2013 lesson 6 CAS HA installing
- 西裤哥的 Hook Api Lib 0.2 For C
- 很好的分页实例代码(JSP)
- Python学习前期准备---第九天
- RocketMQ-初体验RocketMQ(06)-使用API操作RocketMQ ,理解RocketMQ的存储结构
- Android 自定义组件随着手指自动画圆
- 计算机语言排行榜2018年9月,2018年9 月编程语言排行榜JAVA稳占第一
- ZZULIOJ:1000: 从今天开始入坑C语言 JAVA
- 阿里资深技术专家:如何对复杂的业务系统进行解耦和重构?
- C++ 学习方法汇总
- 小程序获取code 获取 openId
- 修改2012服务器的默认端口,请问如何开启2012R2系统对外访问445等端口。
- mysql jsp javabean servlet 注册登录_jsp+javabean+servlet实现简单的登录
- 一种基于边缘Bloom的溶解shader的实现
- houdini特效学习总结
- WP下ListBox的绑定和效果
- 策略验证_卖出口诀_三线相约下山前景不同乐观
- Ubuntu开启防火墙端口
- laravel实现队列
热门文章
- 他读博期间连发3篇Science,28岁任武大教授后再发Nature!
- 如何判断程序员是在装逼还是有真本事?
- 福利来袭,送你105例C语言实战
- 小米8ios图标包下载_小米互传PC端抢先下载,免流量、高速互传,支持多设备共享...
- long 对应oracle,【转】oracle number与java中long、int的对应
- php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
- request-promise 获取返回头信息_http返回的状态码 大全
- leetcode-445. 两数相加 II
- [JavaWeb-Servlet]Servlet的体系结构
- [PAT乙级]1036 跟奥巴马一起编程