当前位置: 首页 > news >正文

题解:AT_abc244_e [ABC244E] King Bombee

一道图上 DP 的好题。

(题目自己看,我就不说了。)

首先一看到求方案数,首先就要反应的是 DP 或者排列组合,反正考试的时候我写半天排列组合没写出来,所以就只能是 DP 了。(好牵强的理由啊……)

既然是 DP,那我们看看 DP 表示什么。自然是求啥设啥,那应该开几维呢?怎么写状态转移方程呢?

首先我们来解决第一个问题:我们看看题目中有几个不定量。不难发现,最主要的一共有三个:当前所在的点、总长度和经过 X X X 的次数。所以 DP 一共就有三维。(正好开下数据范围。)

接着我们来写状态转移方程,其实我们把 DP 设出来之后就很好写状态转移方程了,具体如下:

{ d p i , j , 0 = d p i , j , 0 + d p i − 1 , t o , 0 , d p i , j , 1 = d p i , j , 1 + d p i − 1 , t o , 1 j ≠ t d p i , j , 0 = d p i , j , 0 + d p i − 1 , t o , 1 , d p i , j , 1 = d p i , j , 1 + d p i − 1 , t o , 0 j = t \begin{cases} dp_{i,j,0}=dp_{i,j,0}+dp_{i-1,to,0},dp_{i,j,1}=dp_{i,j,1}+dp_{i-1,to,1}&j\not=t\\dp_{i,j,0}=dp_{i,j,0}+dp_{i-1,to,1},dp_{i,j,1}=dp_{i,j,1}+dp_{i-1,to,0}&j=t\end{cases} {dpi,j,0=dpi,j,0+dpi1,to,0,dpi,j,1=dpi,j,1+dpi1,to,1dpi,j,0=dpi,j,0+dpi1,to,1,dpi,j,1=dpi,j,1+dpi1,to,0j=tj=t

其中 t o to to 表示从 j j j 能到的点。

AC 代码:

#include<bits/stdc++.h>
#define int long long
#define mod 998244353
using namespace std;
int n,m,k,s,t,x,dp[2006][2006][2];
vector<int>v[2006];
signed main()
{cin>>n>>m>>k>>s>>t>>x;for(int i=1,y,z;i<=m;i++){cin>>y>>z;v[y].emplace_back(z);v[z].emplace_back(y);}dp[0][s][0]=1;for(int i=1;i<=k;i++){for(int j=1;j<=n;j++){for(auto l:v[j]){if(j==x){dp[i][j][0]+=dp[i-1][l][1],dp[i][j][0]%=mod;dp[i][j][1]+=dp[i-1][l][0],dp[i][j][1]%=mod;}else{dp[i][j][0]+=dp[i-1][l][0],dp[i][j][0]%=mod;dp[i][j][1]+=dp[i-1][l][1],dp[i][j][1]%=mod;}}}}cout<<dp[k][t][0]%mod;return 0;
}

相关文章:

  • vue+three.js 五彩烟花效果封装+加载字体
  • Go语言实战:使用 excelize 实现多层复杂Excel表头导出教程
  • idea 插件开发自动发布到 nexus 私服中(脚本实例)
  • 随记1-LLM多轮对话的陷阱
  • LTX-Videov本地部署教程:时空扩散+多尺度渲染,重塑AI视频研究范式
  • 至此(day1-day4)代码详解(ai辅助整理)
  • Python代码加密与发布方案详解
  • 计算机图形学Games101笔记--几何
  • leetcode字符串篇【公共前缀】:14-最长公共前缀
  • NebulaGraph学习笔记-SessionPool之Session not existed
  • 常见高速电路设计与信号完整性核心概念
  • SVA 断言16.9 Sequence operations序列运算翻译笔记(12)
  • 香港科技大学(广州)智能制造理学硕士招生宣讲会——深圳大学专场
  • Nextjs App Router 开发指南
  • leetcode 找到字符串中所有字母异位词 java
  • 百度网盘加速补丁v7.14.1.6使用指南|PC不限速下载实操教程
  • 你知道mysql的索引下推么?
  • Doris高性能读能力与实时性实现原理
  • 【优秀三方库研读】在 quill 开源库中 QUILL_MAGIC_SEPARATOR 的作用是什么,解决了什么问题
  • 【Java】封装在 Java 中是怎样实现的?
  • 1309家县医院已达到三级医院能力,还有哪些短板要补?
  • 俄美元首通话超2小时,普京称愿与乌方共同起草和平备忘录
  • 中国首次当选联合国教科文组织1970年《公约》缔约国大会主席国
  • 网约车司机猝死,平台和保险公司均拒绝赔偿,法院判了
  • 国家统计局:4月全国城镇调查失业率为5.1%,比上月下降0.1个百分点
  • 国际观察丨美中东政策生变,以色列面临艰难选择