Codeforces 1009 E. Intercity Travelling(计数)
1009 E. Intercity Travelling
题意:一段路n个点,走i千米有对应的a[i]疲劳值。但是可以选择在除终点外的其余n-1个点休息,则下一个点开始,疲劳值从a[1]开始累加。休息与不休息等概率,设疲劳值总和的期望为p,求p*2n-1
思路:由于期望乘上了2n-1,所以数学意义就是求所有休息情况下的疲劳值总和。问题转化为,每种疲劳出现的次数Ni。网上题解大多数从组合数的角度计数,可能是我理解能力不够,总觉得讲的不太严谨,推导的过程略显随意,更多像是找规律的结果。琢磨了一会,觉得这样计数更容易理解:
对于疲劳a[1]而言,一个点就能出现。由于第一个点一定是a[1],则第一个点的a[1]的出现次数就是2n-1(后面的n-1个点任取,任取是指从a[1]开始还是接前一个的疲劳,2种情况)。而对于其余的任意一个点,出现a[1]的情况共2n-2种(第一个点固定是a[1],还剩n-2个点任取),这样的点有n-1个。故N1 = 2n-1+(n-1) * 2n-2.
对于疲劳a[2]而言,一次要选连续的两个点才能出现。如果选了1,2两点,那么剩下n-2个点任取,共2n-2。而且对于其余的任意连续两点,第一个点是不会变的,除去本身两个确定,还剩n-3个点任取,共2n-3种情况,这样的连续两点有n-2种。因此N2 = 2n-2 + (n-2) * 2n-3.
写到2就能推广到i:a[i]只能出现在连续的i个点下。于是分开讨论选连续的i个点里是否包含1,包含的话,共2n-i种情况,不包含则有2n-i-1种情况,这样的选法有n-i种。Ni = 2n-i + (n-i) * 2n-i-1.
答案就是∑(Ni * ai)。
代码:
#include<bits/stdc++.h>
#define dd(x) cout<<#x<<" = "<<x<<" "
#define de(x) cout<<#x<<" = "<<x<<"\n"
#define sz(x) int(x.size())
#define All(x) x.begin(),x.end()
#define pb push_back
#define mp make_pair
#define fi first
#define se second
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> P;
typedef priority_queue<int> BQ;
typedef priority_queue<int,vector<int>,greater<int> > SQ;
const int maxn=1e6+10,mod=998244353,INF=0x3f3f3f3f;
ll a[maxn],pw[maxn];
void init()
{
pw[0]=1;
for (int i=1;i<maxn;++i)
pw[i]=pw[i-1]*2%mod;
}
inline ll add(ll a,ll b)
{
a+=b;
return a>=mod?a-mod:a;
}
int main()
{
ll n;
cin>>n;
init();
for (int i=1;i<=n;++i)
scanf("%lld",&a[i]);
ll ans=0;
for (ll i=1;i<=n;++i)
ans=add(ans,add(pw[n-i],(n-i+mod)%mod*pw[n-i-1]%mod)*a[i]%mod);
cout<<ans;
return 0;
}
Codeforces 1009 E. Intercity Travelling(计数)的更多相关文章
- Codeforces D. Intercity Travelling(区间组合)
题目描述: D. Intercity Travelling time limit per test 1.5 seconds memory limit per test 256 megabytes in ...
- E. Intercity Travelling
E. Intercity Travelling time limit per test 1.5 seconds memory limit per test 256 megabytes input st ...
- Intercity Travelling CodeForces - 1009E (组合计数)
大意: 有一段$n$千米的路, 每一次走$1$千米, 每走完一次可以休息一次, 每连续走$x$次, 消耗$a[1]+...+a[x]$的能量. 休息随机, 求消耗能量的期望$\times 2^{n-1 ...
- Educational Codeforces Round 47 (Rated for Div. 2) :E. Intercity Travelling
题目链接:http://codeforces.com/contest/1009/problem/E 解题心得: 一个比较简单的组合数学,还需要找一些规律,自己把方向想得差不多了但是硬是找不到规律,还是 ...
- Codeforces 1009E Intercity Travelling | 概率与期望
题目链接 题目大意: 一个人要从$A$地前往$B$地,两地相距$N$千米,$A$地在第$0$千米处,$B$地在第$N$千米处. 从$A$地开始,每隔$1$千米都有$\dfrac{1}{2}$的概率拥有 ...
- Educational Codeforces Round 47 (Rated for Div. 2)E.Intercity Travelling
题目链接 大意:一段旅途长度N,中间可能存在N-1个休息站,连续走k长度时,疲劳值为a1+a2+...+aka_1+a_2+...+a_ka1+a2+...+ak,休息后a1a_1a1开始计, ...
- CodeForces - 1009E Intercity Travelling
题面在这里! 可以发现全是求和,直接拆开算贡献就好了 #include<bits/stdc++.h> #define ll long long using namespace std; c ...
- CodeForces 176B Word Cut (计数DP)
Word Cut Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit St ...
- codeforces ~ 1009 B Minimum Ternary String(超级恶心的思维题
http://codeforces.com/problemset/problem/1009/B B. Minimum Ternary String time limit per test 1 seco ...
随机推荐
- 牛客 26C 手铐 (缩环, 树形dp)
先缩环建树, 对于树上个环$x,y$, 假设$x,y$路径上有$cnt$个环(不包括$x,y$), 贡献就为$2^{cnt}$. 这题卡常挺严重的, 刚开始用并查集合并竟然T了. #include & ...
- [Tarjan系列] Tarjan算法求无向图的双连通分量
这篇介绍如何用Tarjan算法求Double Connected Component,即双连通分量. 双联通分量包括点双连通分量v-DCC和边连通分量e-DCC. 若一张无向连通图不存在割点,则称它为 ...
- hdu 6058 思维
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6058 分析题目的时候,由于枚举的区间很多,而第k大的值范围小,应该要想到去枚举第k大的值然后找到这个值对答 ...
- Ubuntu 上网
1.打开终端 2.sudo gedit /etc/wpa_supplicant/wpa_supplicant.conf(回车之后会弹出一个编辑页面,在里面打入第三步里面的配置文件)3.配置文件如下:c ...
- UPX编译及so加固
UPX编译及so加固 来源 https://www.cnblogs.com/Reverser/p/5778042.html 参考 http://www.cnblogs.com/fishou/p/420 ...
- php压缩图片
<?php header('content-type:text/html;charset=utf8'); set_time_limit(0); $imgs=scandir('./Public/u ...
- K2 BPM_曾经我也是996的一员_全球领先的工作流引擎
最近关于996的工作模式掀起了新一波讨论热潮.事情源于有人在知名代码托管平台GitHub上,发起了一个名为“996.ICU”的项目,意为“工作996,生病ICU”,以抵制互联网公司的996工作制,项目 ...
- go语言入门(6)复合类型
1,分类 2,指针 指针是一个代表着某个内存地址的值.这个内存地址往往是在内存中存储的另一个变量的值的起始位置. 1)基本操作 Go语言虽然保留了指针,但与其它编程语言不同的是: 默认值 nil,没有 ...
- Spring Cloud(七)服务网关 Zuul Filter 使用
上一篇文章中,讲了Zuul 转发,动态路由,负载均衡,等等一些Zuul 的特性,这个一篇文章,讲Zuul Filter 使用,关于网关的作用,这里就不再次赘述了,重点是zuul的Filter ,我们可 ...
- mORMot学习笔记 (一)
官方网站:https://synopse.info/fossil/wiki/Synopse+OpenSource 下载地址:https://synopse.info/fossil/wiki?name= ...