首页 > 其他分享 >Sugoroku 4 (Atcoder abc275 T5) DP

Sugoroku 4 (Atcoder abc275 T5) DP

时间:2022-11-04 13:11:43浏览次数:67  
标签:Atcoder 格子 int inv T5 pos abc275 ans

题目描述

题目链接 https://atcoder.jp/contests/abc275/tasks/abc275_e

题意

从 \(0\) 到 \(n\) 有 \(n+1\) 个方格,你现在在第 \(0\) 个格子。
每次移动可以随机走 \(1\) 到 \(m\) 个格子,如果走到第 \(n\) 个格子后还没走完,就后退继续走。
求最多移动 \(k\) 次走到第 \(n\) 个格子的概率,对 \(998244353\) 取模。

\(M≤N≤1000\)
\(1≤M≤10\)
\(1≤K≤1000\)

题目分析

不难发现,可以构建dp数组,\(f[i][j]\) 表示第 \(i\) 次移动后在第 \(j\) 个方格的概率。
那么这样做的时间复杂度就为 \(O(nmk)\)。

代码

分数取模部分使用乘法逆元

#include <bits/stdc++.h>
using namespace std;
const int N=1e3+5;
const int P=998244353;
int n,m,k,inv[N],f[N][N],ans;
int main(){
	scanf("%d%d%d",&n,&m,&k);
	inv[1]=1;
	for(int i=2;i<=m;i++) inv[i]=(1ll*(P-P/i)*inv[P%i])%P;
	f[0][0]=1;
	for(int i=1;i<=k;i++){
		for(int j=0;j<=n;j++){
			for(int l=1;l<=m;l++){
				int pos=j+l;
				if(pos>n) pos=n-(pos-n);
				f[i][pos]=(1ll*f[i][pos]+1ll*f[i-1][j]*inv[m])%P;
			}
		}
		ans=(1ll*ans+f[i][n])%P;
		f[i][n]=0;
	}
	printf("%d",ans);
	return 0;
}

标签:Atcoder,格子,int,inv,T5,pos,abc275,ans
From: https://www.cnblogs.com/xiaocaibiancheng/p/16857423.html

相关文章

  • Atcoder Beginner Contest 271(A~G)
    省流:赛时F假了。赛时A转进制;B简单vector。C简单贪心模拟,大概就是能走就走,不能走就先不走(较大)或者存起来(较小),最后走存起来的。挂了3发,自闭了。D第一眼看成了......
  • AtCoder Regular Contest 065
    ARC064C,E都是简单题,D猜结论也没啥意思,就不写了。ARC065还是比较好的。D-Connectivity给定\(n\)个点的无向图,有两组连边,互相独立。询问每个点通过两组连边都......
  • junit5
    引入依赖<!--https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api--><dependency><groupId>org.junit.jupiter</groupId><artifactId>......
  • AtCoder Regular Contest 136 D Without Carry
    AtCoder传送门洛谷传送门一眼。将\(a\)中每个数用前导零补到\(6\)位,题目相当于问所有\(i,j\),\(a_i\)的每一位加\(a_j\)的这一位都不超过\(9\)的\((i,j)\)......
  • 第四届全国大学生算法设计与编程挑战赛(秋季赛)T5.找规律
    看了题解之后发现确实比我更有规律...妙啊妙啊 我的:1#include<bits/stdc++.h>2usingnamespacestd;34longlongintn,k,m=1,p=0;//k表示增加......
  • CSP2020-12-T5
    星际旅行算法:线段树、离散化题意:你需要维护\(3\)维空间的\(n(1\leqn\leq10^9)\)个点,初始时这些点的三维坐标都是\(0\)。将有以下\(4\)种操作\(m(1\leqm\leq......
  • QT5.6构建打包exe方法
    打包方法项目构建为Release,将Release文件夹里的exe文件拷贝的新建文件夹out中.运行QT的MingGW,进入文件夹out执行命令:windeployqt.exeSerialport_app.exe......
  • ATcoder F 做题记录
    ABC273F简要题意一个人要沿数轴从\(0\)处走到\(x\)处,数轴上有一些障碍,每个障碍有一把对应的锤子可以将其销毁,给定障碍和锤子的坐标及\(x\),求最短路长。简要题......
  • Atcoder Beginner Contest 273(A~E+G)
    E场上想麻烦了,调根号分治浪费了点时间;F涉及后缀数组,还没有系统学;G场上没来的及看,也沾点数学,估计场上也想不到(不好,不好。赛时A神笔数组求和;B迷你模拟;C分别找到奇......
  • D - Yet Another Recursive Function -- ATCODER
    D-YetAnotherRecursiveFunctionhttps://atcoder.jp/contests/abc275/tasks/abc275_d 思路动态规划问题。第一印象使用函数递归调用实现,但刚开始担心会爆栈,因为......