1
希望对你有帮助.|

zouyua

园龄:1年10个月粉丝:3关注:3

简单几个状态的转移,一维数组上的状态

题目连接:E - Distinct Adjacent (atcoder.jp)

这种求领边染色问题可以用二维表示

状态:

dp [i] [0/1] 代表第 i 个的选择和 1 号不同和相同

转移方程:

dp[i][0] = (dp[i - 1][0] * (m - 2) + dp[i - 1][1] * (m - 1)) % mod;

dp[i][1] = dp[i - 1][0] % mod;

属性:dp[n][0];

复制代码
#include<bits/stdc++.h>

using namespace std;
using ull = unsigned long long;
using ll = long long;
using PII = pair<int,int>;
#define IOS ios::sync_with_stdio(false),cin.tie(0)
#define endl "\n"
#define pb push_back
const int N=1e6+10;
const int INF=0x3f3f3f3f;
const int mod = 998244353;
ll dp[N][2];
int main()
{
    int n, m;
    cin >> n >> m;
    dp[1][1] = m;
    for(int i = 2; i <= n; i ++)
    {
        dp[i][0] = (dp[i - 1][0] * (m - 2) + dp[i - 1][1] * (m - 1)) % mod;
        dp[i][1] = dp[i - 1][0] % mod;
    }
    cout << dp[n][0] << endl;
    return 0;
}
复制代码

 相似的题目链接:D - Poisonous Full-Course (atcoder.jp)

本文作者:zouyua

本文链接:https://www.cnblogs.com/ZouYua/p/17569677.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   zouyua  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起