我是靠谱客的博主 洁净滑板,最近开发中收集的这篇文章主要介绍【UOJ】UER#3.B 开学前的日历,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

将条件转化为 i,j0,i+jk|Av+i,u+j+=(i+ji) i , j ⩾ 0 , i + j ⩾ k | A v + i , u + j + = ( i + j i ) , 考虑组合意义,从 (v,u) ( v , u ) 开始每次往右或往下走,走大于等于 k k <script type="math/tex" id="MathJax-Element-9">k</script>布的方案数,直接DP。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
const int tt=998244353,maxn=306;
int n,m,q,f[maxn][maxn][maxn*2];
LL x0;
int rnd(){x0=(x0*100000005+20150823)%tt;return x0/100;}
int main(){
    freopen("B.in","r",stdin);freopen("B.out","w",stdout);
    scanf("%d%d%d%lld",&n,&m,&q,&x0);
    for(int i=1,v,u,k;i<=q;i++)v=rnd()%n+1,u=rnd()%m+1,k=rnd()%(n+m-v-u+1),f[v][u][k]++;
    for(int i=1;i<=n;i++)
     for(int j=1;j<=m;j++){
        (f[i+1][j][0]+=f[i][j][0])%=tt;(f[i][j+1][0]+=f[i][j][0])%=tt;
        for(int k=1;k<=n+m;k++)(f[i+1][j][k-1]+=f[i][j][k])%=tt,(f[i][j+1][k-1]+=f[i][j][k])%=tt;
     }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++)printf("%d ",f[i][j][0]);
        printf("n");
    }
    return 0;
}

最后

以上就是洁净滑板为你收集整理的【UOJ】UER#3.B 开学前的日历的全部内容,希望文章能够帮你解决【UOJ】UER#3.B 开学前的日历所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部