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相关推荐

  1. Educational Codeforces Round 47 (Rated for Div. 2) :E. Intercity Travelling

    题目链接:http://codeforces.com/contest/1009/problem/E 解题心得: 一个比较简单的组合数学,还需要找一些规律,自己把方向想得差不多了但是硬是找不到规律,还是 ...

  2. CF Edu 47E. InterCity Travelling 期望线性,打表

    题意:n个关卡,第i个关卡得分为a[i]. 若第i个关卡存在机关,那么[i+1,n]关卡的得分为 [a[1],a[2]....]. 第n个关卡不能放机关,那么总共有2^(n-1)种方法. n,a[i] ...

  3. Educational Codeforces Round 47 (Div 2) (A~G)

    目录 Codeforces 1009 A.Game Shopping B.Minimum Ternary String C.Annoying Present D.Relatively Prime Gr ...

  4. PAT甲级1150 Travelling Salesman Problem:[C++题解]旅行商问题、图论

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 旅行商问题:访问每个城市并回到原城市的最短路. 思路: 1)判断相邻两点有无距离(NA):2)每个点是否都能到:3)是否是回路:4) ...

  5. JavaScript实现Travelling Salesman算法(附完整源码)

    JavaScript实现Travelling Salesman算法(附完整源码) bfTravellingSalesman.js完整源代码 bfTravellingSalesman.js完整源代码 f ...

  6. cf1504. Travelling Salesman Problem

    cf1504. Travelling Salesman Problem 题意: n个城市,编号1~n,每个城市有美丽值a[i],现在要从城市1出发,其他所有城市走一遍,最后回到城市1,城市i到j的花费 ...

  7. PAT 1150 Travelling Salesman Problem(25 分)- 甲级

    The "travelling salesman problem" asks the following question: "Given a list of citie ...

  8. bzoj 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛(BFS)

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1293  Solved ...

  9. BZOJ 1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛【DP】

    1616: [Usaco2008 Mar]Cow Travelling游荡的奶牛 Time Limit: 5 Sec Memory Limit: 64 MB Description 奶牛们在被划分成N ...

最新文章

  1. PyTorch 1.6、TensorFlow 2.3、Pandas 1.1同日发布!都有哪些新特性?
  2. exchange 2013 lesson 6 CAS HA installing
  3. 西裤哥的 Hook Api Lib 0.2 For C
  4. 很好的分页实例代码(JSP)
  5. Python学习前期准备---第九天
  6. RocketMQ-初体验RocketMQ(06)-使用API操作RocketMQ ,理解RocketMQ的存储结构
  7. Android 自定义组件随着手指自动画圆
  8. 计算机语言排行榜2018年9月,2018年9 月编程语言排行榜JAVA稳占第一
  9. ZZULIOJ:1000: 从今天开始入坑C语言 JAVA
  10. 阿里资深技术专家:如何对复杂的业务系统进行解耦和重构?
  11. C++ 学习方法汇总
  12. 小程序获取code 获取 openId
  13. 修改2012服务器的默认端口,请问如何开启2012R2系统对外访问445等端口。
  14. mysql jsp javabean servlet 注册登录_jsp+javabean+servlet实现简单的登录
  15. 一种基于边缘Bloom的溶解shader的实现
  16. houdini特效学习总结
  17. WP下ListBox的绑定和效果
  18. 策略验证_卖出口诀_三线相约下山前景不同乐观
  19. Ubuntu开启防火墙端口
  20. laravel实现队列

热门文章

  1. 他读博期间连发3篇Science,28岁任武大教授后再发Nature!
  2. 如何判断程序员是在装逼还是有真本事?
  3. 福利来袭,送你105例C语言实战
  4. 小米8ios图标包下载_小米互传PC端抢先下载,免流量、高速互传,支持多设备共享...
  5. long 对应oracle,【转】oracle number与java中long、int的对应
  6. php年月日滚动选择,Unity3d—做一个年月日选择器(Scroll Rect拖动效果优化)— 无限滚动 + 锁定元素...
  7. request-promise 获取返回头信息_http返回的状态码 大全
  8. leetcode-445. 两数相加 II
  9. [JavaWeb-Servlet]Servlet的体系结构
  10. [PAT乙级]1036 跟奥巴马一起编程