首页 > 其他分享 >ABC323E Playlist 题解

ABC323E Playlist 题解

时间:2024-03-06 21:45:20浏览次数:19  
标签:Playlist limits int 题解 ll re ABC323E sum dp

考虑第 \(i\) 时刻时,第 \(j\) 首歌刚好结束与第 \(i-j\) 时刻有关,因此设 \(dp_{i,j}\) 表示第 \(i\) 时刻第 \(j\) 首歌刚好结束的概率,那么 \(dp\) 转移方程为:

\[dp_{i,j}=\sum\limits_{k=1}^n dp_{i-t_j,k} \]

很容易想到记录 \(\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;
} 

标签:Playlist,limits,int,题解,ll,re,ABC323E,sum,dp
From: https://www.cnblogs.com/chang-an-22-lyh/p/18057665/abc323e-tj

相关文章

  • 初三组合恒等式和二项式定理练习 题解
    A.多项式推柿子:\[\begin{aligned}&\sum\limits_{k=0}^{n}b_{k}(x-t)^{k}\\=&\sum\limits_{k=0}^{n}b_{k}\sum\limits_{i=0}^{k}\binom{k}{i}x^{i}(-t)^{k-i}\\=&\sum\limits_{0\leqslanti\leqslantk\leqslantn}\binom{k}{i}b_{......
  • 2024 联合省选 题解
    D1T1季风考虑要求\(\begin{cases}\sum\limits_{i=0}^{m-1}(x'_i+x_{i\bmodn})=x\\\sum\limits_{i=0}^{m-1}(y'_i+y_{i\bmodn})=y\\|x'_i|+|y'_i|\lek\end{cases}\)发现其等价于\(|x-\sum\limits_{i=0}^{m-1}x_{i\bmodn}|+|y-\sum\l......
  • Chests and Keys 题解
    题意:给定\(n,m\)表示存在\(n\)个宝箱和\(m\)把钥匙,第\(i\)把钥匙需要\(b_i\)元,第\(i\)个宝箱内部有\(a_i\)元。现在进行一场游戏,Bob是本场游戏的玩家,而Alice则是场景布置者,Alice可以给每个宝箱上一些锁(第\(j\)种锁需要第\(j\)种钥匙打开)如果Bob可以购......
  • Linux使用问题之长时间连接ssh不操作自动断开问题解决方案
    1.概要一般情况下,在使用SSHSecureShellClient的过程中,经常会遇到当用SSHSecureShell连接登录Linux后,如果几分钟没有任何操作,连接就会自动断开,提示Serverresponded"Connectionclosed.",必须重新登录才可以。2.原理主要由以下两个参数控制:ClientAliveInterval:指定了服......
  • springboot 应用程序 pom节点版本冲突问题解决思路
    springboot应用程序pom节点版本冲突问题解决思路一、首先 mavenhelper 查看是否有冲突 conflicts 二、allDenpendencies  查询如poi 查询冲突 ps: <scope>compile</scope>  compile:这是默认的依赖项范围。指定为compile的依赖项将在编译、测试和......
  • [AGC016D] XOR Replace 题解
    题意:一个序列\(a\),一次操作可以将某个位置变成整个序列的异或和。求最少几步到达目标序列\(b\)。\(n\le10^5\)思路:见到这种题,第一步要去尝试把操作转化。稍微推一下可以发现,如果\(\oplus_{i=1}^na_i=s\),则相当于一个\(n+1\)长序列,\(a_{n+1}=s\),每次可以交换\(a......
  • 九省联考题解第一弹(1-8)
    2024九省联考题解样本数据16,24,14,10,20,30,12,14,40的中位数为?解:排序后为10,12,14,14,16,20,24,30,40,答案显然为16。椭圆\(\frac{x^2}{a^2}+y^2=1(a>1)\)的离心率为\(\frac{1}{2}\),求\(a\)。解:直接上椭圆基础公式。在题干中\(b=1\),离心率\(e=\frac{c}{a}=\frac{\sqrt{a^2-b^2}}{a}=\fr......
  • CF1925D Good Trip 题解
    Solution不好做的地方在于每一对朋友的友谊值是不同的,于是考虑将其统一为一个数。比较好想的就是将他们的初始友谊值提前计算,即对于每一次远足,设总情况为\(S=\frac{n\times(n-1)}{2}\),总的初始友谊值为\(w=\sum_{i=1}^{m}f_i\),假设友谊值不变,获得的期望友谊值为\(\frac{w}{......
  • ABC259Ex 题解
    Solution首先考虑暴力:枚举同种颜色的格子,假设两点为\((i,j),(x,y)\),那么从\((i,j)\)到\((x,y)\)的方案数即为\(C_{x-i+y-j}^{x-i}\)。考虑当前颜色有\(B\)个,枚举的时间复杂度为\(O(B^2)\)。考虑枚举每一种颜色,算出这种颜色到其他格子方案数,有递推方程:\(f_{i,j}=f_......
  • CF1800F 题解
    Solution考虑转化题目条件,因为要求字符串恰好有\(25\)个字符,所以考虑枚举没出现过的字符,令其为\(k\)。再令\(f_{i,p}\)表示第\(i\)个字符串\(p\)字符出现次数的奇偶,于是题目条件即为:\(f_{i,k}=f_{j,k}=0\)。\(f_{i,p}+f_{j,p}\bmod2=1\)。于是考虑用一个\(2^{26......