CF1153F Serval and Bonus Problem[通俗易懂]

CF1153F Serval and Bonus Problem[通俗易懂]CF1153F Serval and Bonus Problem

大家好,又见面了,我是你们的朋友全栈君。

 Serval and Bonus Problem

1.转化为l=1,最后乘上l

2.对于一个方案,就是随便选择一个点,选在合法区间内的概率

3.对于本质相同的所有方案考虑在一起,贡献就是合法区间个数/(2*n+1)

4.运用条件概率或者直接解释,只需求出所有本质不同的方案的合法区间个数的和

5.DP即可。

#include<bits/stdc++.h>
#define reg register int
#define il inline
#define fi first
#define se second
#define mk(a,b) make_pair(a,b)
#define numb (ch^'0')
using namespace std;
typedef long long ll;
template<class T>il void rd(T &x){
    char ch;x=0;bool fl=false;
    while(!isdigit(ch=getchar()))(ch=='-')&&(fl=true);
    for(x=numb;isdigit(ch=getchar());x=x*10+numb);
    (fl==true)&&(x=-x);
}
template<class T>il void output(T x){
   
   if(x/10)output(x/10);putchar(x%10+'0');}
template<class T>il void ot(T x){
   
   if(x<0) putchar('-'),x=-x;output(x);putchar(' ');}
template<class T>il void prt(T a[],int st,int nd){
   
   for(reg i=st;i<=nd;++i) ot(a[i]);putchar('\n');}

namespace Miracle{
const int N=4008;
const int mod=998244353;
int n,k,l;
int qm(int x,int y){
    int ret=1;
    while(y){
        if(y&1) ret=(ll)ret*x%mod;
        x=(ll)x*x%mod;
        y>>=1;
    }
    return ret;
}
int ad(int x,int y){
    return x+y>=mod?x+y-mod:x+y;
}
int f[N][N][2];
int main(){
    rd(n);rd(k);rd(l);
    f[0][0][0]=1;
    for(reg i=1;i<=2*n+1;++i){
        for(reg j=0;j<=i;++j){
            for(reg x=0;x<=1;++x){
                if(i+j+(1-x)<=2*n+1){
                    // cout<<i<<" "<<j<<" "<<x<<endl;
                    f[i][j][x]=ad(f[i][j][x],(ll)f[i-1][j+1][x]*(j+1)%mod);
                    if(j>0)f[i][j][x]=ad(f[i][j][x],f[i-1][j-1][x]);
                    if(x==1&&j>=k)f[i][j][x]=ad(f[i][j][x],f[i-1][j][0]);
                    // cout<<" val "<<f[i][j][x]<<endl;
                }
            }
        }
    }
    // cout<<f[2*n+1][0][1]<<endl;
    ll jie=1;
    for(reg i=n+1;i<=2*n+1;++i) jie=(ll)jie*i%mod;
    ll ans=(ll)f[2*n+1][0][1]*qm(2,n)%mod*qm(jie,mod-2)%mod;
    cout<<(ll)ans*l%mod;
    return 0;
}

}
signed main(){
    Miracle::main();
    return 0;
}

/*
   Author: *Miracle*
   Date: 2019/4/13 19:58:12
*/

 

转载于:https://www.cnblogs.com/Miracevin/p/10713639.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106876.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PyTorch踩坑指南(1)nn.BatchNorm2d()函数

    PyTorch踩坑指南(1)nn.BatchNorm2d()函数前言最近在研究深度学习中图像数据处理的细节,基于的平台是PyTorch。心血来潮,总结一下,好记性不如烂笔头。BatchNormalization对于2015年出现的BatchNormalization1,2018年的文章GroupNormalization2在Abstract中总结得言简意赅,我直接copy过来。BatchNormalization(BN)isamile…

    2022年6月7日
    54
  • 首批共享单车死于2019

    首批共享单车死于2019作者|周晶晶本文经授权转自燃财经(ID:rancaijing)共享单车换车潮正在上演。最近,微博上陆续有网友晒出车身为黄色、印有“美团单车”字样的共享单车,地点多集中在北京、太原等地。日前,燃财经来到人流量较大的五环外立水桥生活圈,以及四环内的望京CBD办公圈,发现确实有不少黄色美团单车。在立水桥地铁站出口,长约800米的单车停放区域,数量明显较多的美团单车、摩拜单…

    2022年5月26日
    44
  • Tomcatserverhttps协议配置简单介绍[通俗易懂]

    Tomcatserverhttps协议配置简单介绍

    2022年2月2日
    53
  • Spring IOC 之解析 bean 标签:开启解析进程,BeanDefinition

    Spring IOC 之解析 bean 标签:开启解析进程,BeanDefinitionSpring IOC 之解析 bean 标签:开启解析进程,BeanDefinition

    2022年4月20日
    53
  • Oracle Number 取值范围

    Oracle Number 取值范围1.0E-130&lt;=number&lt;1.0E126.-1.0E126&lt;number&lt;=-1.0E-130 

    2022年7月24日
    11
  • 小白能读懂的 《手把手教你学DSP(TMS320X281X)》第二章(1) 2020-12-21[通俗易懂]

    小白能读懂的 《手把手教你学DSP(TMS320X281X)》第二章(1) 2020-12-21[通俗易懂]1声明由于本人也是小白,只是将所能查询到的资料进行汇总,水平有限,只能代表个人的理解,但所写文章也从小白视角出发,对小白友好,如果帮助到你,记得点赞收藏不迷路。如果文章有错误,请不吝赐教;待我查询后一定改正,这样你我教学相长,岂不美哉,当然有些错误待我多时之后也可能自己发现,到时候自己回来改正,不过有的可能遗忘,所以能提醒我最好,哈哈,谢谢。2概述首先dsp2812是32位的定点dsp。单片机中的32位是指cpu处理的数据的宽度,即参与运算的寄存器的数据长度。…

    2022年5月1日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号