import java.io.IOException;
import java.util.Arrays;
import java.util.Scanner; public class Main {
static int n, m, k;
static int MOD = 998244353;
static long m1 = 1l; //1/m (mod MOD的值 public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in); n = in.nextInt();
m = in.nextInt();
k = in.nextInt(); m1 = ksm(m, MOD - 2); long[] dp = new long[n + 1];
dp[0] = 1; for (int i = 1; i <= k; i++) {
long[] nextdp = new long[n + 1];
// nextdp = Arrays.copyOf(dp, dp.length);
nextdp[n] = dp[n];
for (int x = 0; x < n; x++) {
for (int di = 1; di <= m; di++) {
int newx = x+di;
if (x + di >= n) {
newx = n - (newx - n);
}
nextdp[newx] = nextdp[newx] + ((dp[x] * m1) % MOD);
nextdp[newx] %= MOD;
}
}
dp = Arrays.copyOf(nextdp, nextdp.length);
}
System.out.println(dp[n]);
} public static long ksm(long a, int p) {
if (p == 0) {
return 1l;
}
if (p == 1) {
return a;
}
long tmp = ksm(a, p / 2);
long ans = tmp * tmp;
ans %= MOD;
if (p % 2 == 1) {
ans = ans * a;
ans %= MOD;
}
return ans;
} }

【atcoder 293 E - Sugoroku 4】【动态规划,递推】的更多相关文章

  1. 最长上升子序列(动态规划递推,LIS)

    1759:最长上升子序列 题目: 总时间限制: 2000ms 内存限制: 65536kB 描述 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的 ...

  2. 最大子段和(洛谷P1115,动态规划递推)

    洛谷题目链接 题目赋值出来格式有问题,所以我就只放题目链接了 下面为ac代码 #include<bits/stdc++.h> #define ll long long using name ...

  3. 数的计数(noip2001,动态规划递推)

    题目链接: 普通版: https://www.luogu.org/problemnew/show/P1028 数据加强版: https://www.luogu.org/problemnew/show/ ...

  4. P1759 通天之潜水(不详细,勿看)(动态规划递推,组合背包,洛谷)

    题目链接:点击进入 题目分析: 简单的组合背包模板题,但是递推的同时要刷新这种情况使用了哪些物品 ac代码: #include<bits/stdc++.h> using namespace ...

  5. P2347 砝码称重(动态规划递推,背包,洛谷)

    题目链接:P2347 砝码称重 参考题解:点击进入 纪念我第一道没理解题意的题 ''但不包括一个砝码也不用的情况'',这句话我看成了每个砝码起码放一个 然后就做不出来了 思路: 1.这题数据很小,10 ...

  6. NOIP 2008 传纸条(洛谷P1006,动态规划递推,滚动数组)

    题目链接:P1006 传纸条 PS:伤心,又想不出来,看了大神的题解 AC代码: #include<bits/stdc++.h> #define ll long long using na ...

  7. NOIP2000方格取数(洛谷,动态规划递推)

    先上题目: P1004 方格取数 下面上ac代码: ///如果先走第一个再走第二个不可控因素太多 #include<bits/stdc++.h> #define ll long long ...

  8. P1541 乌龟棋 题解(洛谷,动态规划递推)

    题目:P1541 乌龟棋 感谢大神的题解(他的写的特别好) 写一下我对他的代码的理解吧(哎,蒟蒻就这能这样...) 代码: #include<bits/stdc++.h> #define ...

  9. Coin Toss(uva 10328,动态规划递推,限制条件,至少转至多,高精度)

    有n张牌,求出至少有k张牌连续是正面的排列的种数.(1=<k<=n<=100) Toss is an important part of any event. When everyt ...

  10. 四角递推(CF Working out,动态规划递推)

    题目:假如有A,B两个人,在一个m*n的矩阵,然后A在(1,1),B在(m,1),A要走到(m,n),B要走到(1,n),两人走的过程中可以捡起格子上的数字,而且两人速度不一样,可以同时到一个点(哪怕 ...

随机推荐

  1. 小知识:RMAN备份当前控制文件报错ORA-245

    在一个备份的case上遇到备份控制文件报错ORA-245,最终通过修改snapshot controlfile默认位置到ASM磁盘组后解决. 1.问题复现 回来后就想快速记录下这个小知识点,打开尘封的 ...

  2. ASCII、Unicode、UTF8 10年后,史无前例,自己用js实现《专题3》

    我自己史无前例的开发了一个网页小工具,可以利用这个工具 直接查询到 一个字符的unicode二进制的定义,和utf8格式下内存中 存储的二进制. =========================== ...

  3. delphi 调试 原来可以这样 复制,不用点开 才能复制 对象的值

  4. 用ELK分析每天4亿多条腾讯云MySQL审计日志(1)--解决过程

    前言:      该文章将会介绍以下: 1,快速分析SQL日志的几种方法 2,使用mysql的全文索引快速分析少量SQL审计 3,准确快速分析4亿多条审计SQL日志(过程和最终解决方案) 公司核心库拆 ...

  5. windbg 分析 32 位进程的 64 位转储文件

    场景: x86 的项目在 x64 的 windows 机器上运行时出现未响应的情况,使用任务管理器创建该进程的转储文件 因为项目是 32 位的,所以使用 x86 的 windbg 来调试 dmp 文件 ...

  6. 细说Spring框架之核心01-概述

    官网:https://spring.io/projects/spring-framework 文档:https://docs.spring.io/spring-framework/docs/curre ...

  7. 类型判断,代码块,流程控制及循环---day05

    1.类型判断isinstance 用来做判断类型 语法: 用法一: isinstance(要判断的值,要判断的类型) 返回的是真或者假 用法二: isinstance(要判断的值,(可能的类型))如果 ...

  8. 将模型对象转换为json字典:model_to_dict

    例子 from rest_framework.views import APIView class StudentAPIView(APIView): def get(self, request): p ...

  9. flutter3-winchat桌面端聊天实例|Flutter3+Dart3+Getx仿微信Exe程序

    首发原创flutter3+bitsdojo_window+getx客户端仿微信exe聊天Flutter-WinChat. flutter3-dart3-winchat 基于flutter3+dart3 ...

  10. Python实现snap:对齐多张遥感影像的空间范围

      本文介绍基于Python中ArcPy模块,实现基于栅格图像批量裁剪栅格图像,同时对齐各个栅格图像的空间范围,统一其各自行数与列数的方法.   首先明确一下我们的需求.现有某一地区的多张栅格遥感影像 ...