ABC323E Playlist 题解
考虑第 \(i\) 时刻时,第 \(j\) 首歌刚好结束与第 \(i-j\) 时刻有关,因此设 \(dp_{i,j}\) 表示第 \(i\) 时刻第 \(j\) 首歌刚好结束的概率,那么 \(dp\) 转移方程为:
\]
很容易想到记录 \(\sum\limits_{j=1}^n dp_{i,j}\) 的值为 \(sum_i\),这样转移时间就只有 \(O(1)\) 了。
答案为 \(\frac{\sum\limits_{i=x+1}^{x+t_1}dp_{i,1}}{n}\),也就是 \(\frac{\sum\limits_{i=x+1-t_1}^x sum_i}{n}\)。时间复杂度 \(O(nx)\)。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const ll p=998244353;
ll qpow(ll x,int y){
ll re=1;
while(y){
if(y&1) re=re*x%p;
x=x*x%p;
y>>=1;
}return re;
}int n,t[1005],x;
ll sum[10005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>x;
for(int i=1;i<=n;i++)
cin>>t[i];
ll zjy=qpow(n,p-2),ans=0;
if(!x){
cout<<zjy;
return 0;
}sum[0]=1;
for(int i=1;i<=x;i++)
for(int j=1;j<=n;j++)
if(i>=t[j])
sum[i]=(sum[i]+sum[i-t[j]]*zjy%p)%p;
for(int i=x+1-t[1];i<=x;i++)
ans=(ans+sum[i]*zjy%p)%p;
cout<<ans;
return 0;
}
ABC323E Playlist 题解的更多相关文章
- Codeforces Round #164 (Div. 2) E. Playlist 贪心+概率dp
题目链接: http://codeforces.com/problemset/problem/268/E E. Playlist time limit per test 1 secondmemory ...
- Codeforces A. Playlist(暴力剪枝)
题目描述: Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- 并不对劲的CF1237D&E:Balanced Playlist and Binary Search Trees
CF1237D Balanced Playlist 题意 有一个长度为\(n\)(\(n\leq 10^5\))的循环播放歌单,每首歌有一个优秀值\(a_i\)(\(a_i\leq 10^9\)). ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
随机推荐
- HarmonyOS Next 入门实战 - 导航框架:HMRouter
基础知识 目前官方推荐的最佳解决方案,是官方对于Navigation导航组件的封装,使用更简单便捷.如果熟悉Navigation的话,使用起来很快上手. 首先先集成HMRouter模块 使用命令行安装 ...
- 3D饼图
1.实现思路 Echarts本身没有这类图形,可以使用其扩展echarts-gl进行绘制,echarts-gl曲面图可以完成这类需求 <script src="https://cdn. ...
- MySql 9 in Docker 主从切换
继上一篇<MySql 9 in Docker 利用克隆插件搭建主从>我们说了主从复制后, 那么我们接下来说说如何手动的进行主从切换. 动手~ 1. 原主库设置 切断应用对主库的访问 主库设 ...
- QueryFilter的子字段设定
QueryFilter有一个SubFields属性和一个AddField方法. 对于SubFields属性是这样描述的.The comma delimited list of field names ...
- RabbitMQ快速入门 整合 SpringBoot
RabbitMQ快速入门 整合 SpringBoot 概述 大多应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦能力.流量削峰 消息服务中两个重要概念: 消息代理(`message broke ...
- ASCII 与 Unicode 中的引号
原文地址:https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html 摘要 请不要使用 ASCII 中的重音符号 ` (0x60) 作为左边与 ASCII 中的撇号 ...
- shell 下 exec,source,.,bash和sh以及export得区别
exec执行命令时,不会启用新的shell进程. source和 .也不会启用新的shell进程,在当前shell中执行,设定的局部变量在执行完命令后仍然有效. bash或sh执行时,会另起一个子 ...
- java到报名的编码运行
Hello.java package a.b; import com.beyondiary.kit.KitConstant; public class Hello { public static vo ...
- jacoco-实战篇-增量覆盖率
我fork的jacoco源码改造好:https://github.com/exmyth/jacoco 入口:https://github.com/exmyth/jacoco/blob/master/o ...
- 浅说c/c++ coroutine
浅说c/c++ coroutine 从上面我们可以得到关于协程的几个关键信息, 1.打破传统(regular)函数调用的限制. 2.stackful协程实现方式,基于独立栈,上下文切换. 3.stac ...