题解 | #Qu'est-ce Que C'est?#

Bobo String Construction

https://ac.nowcoder.com/acm/contest/57358/A

迫于大佬威压来写题解,J比较明显的状态设计 发现区间加法 直接上差分即可

#include<bits/stdc++.h>
#define int long long
using namespace std;
typedef long long ll;
const int N = 5010;
const int mod = 998244353;
int n,m,dp[N][N*2],num[N*2];
signed main()
{
    cin>>n>>m;
    for(int i=-m;i<=m;i++)dp[1][i+m]=1;
    for(int i=2;i<=n;i++){
        memset(num,0,sizeof(num));
        for(int j=-m;j<=m;j++){
            if(j<0){
                num[m]=(num[m]+dp[i-1][j+m])%mod;
                num[j+m*2+1]=(num[j+m*2+1]-dp[i-1][j+m]+mod)%mod;
            }
            else{
                num[-j+m]=(num[-j+m]+dp[i-1][j+m])%mod;
                num[2*m+1]=(num[2*m+1]-dp[i-1][j+m])%mod;
            }
        }
        for(int i=0;i<=2*m;i++)num[i]=(num[i]+num[i-1]%mod+mod)%mod;
        memcpy(dp[i],num,sizeof(num));
    }
    int ans = 0;
    for(int i=0;i<=2*m;i++){
        ans=(ans+dp[n][i])%mod;
    }
    cout<<ans<<'\n';
    return 0;
}

全部评论

相关推荐

03-06 20:09
贵州大学 Java
King987:你这个学历找个中大厂刷实习经历都是可以的,但是项目要有亮点才行,这个什么外卖就不要做了,去找找最新的项目,至少涉及高并发或者是新型的AI技术mcp rag啥的 ,我在出简历点评,但是你这个没什么好点评的,内容太少,而且含金量太低。自己改一改吧,或者看一下我的项目地址中,那里有大厂最近做过的实习项目
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务