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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python常用代码_python画图代码大全

    Python常用代码_python画图代码大全原标题:30个Python常用极简代码,拿走就用文章转自:Python程序员学Python怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则。本文是30个极简任务,初学者可以尝试着自己实现;本文同样也是30段代码,Python开发者也可以看看是不是有没想到的用法。、1重复元素判定以下方法可以检查给定列表是不是存在重复元素,它会使用set函数来移除所有重复元…

    2022年8月27日
    3
  • 安装win8、ubuntu双系统的过程

    弄了一个晚上,终于完成了,之前是用虚拟机的,但是觉得不带劲,并且折腾来时菜鸟变大神的捷径,虽然现在还一直在爬坑。继续奋斗吧…王小二首先是看ubuntu百度贴吧的安装帖子(http://tieb

    2021年12月20日
    42
  • clipboard使用Require自动复制「建议收藏」

    clipboard使用Require自动复制「建议收藏」由于没有使用过require,在微擎人人商城中遇到了一个需要自动复制内容的功能。头疼了一番。varversion=+newDate();varmyconfig={path:’../addons/ewei_shopv2/static/js/’,alias:{‘jquery’:’dist/jquery/jquery-1.11.1.min’,’jquery.form’:’dist/jquery/jquery.form’,

    2022年7月14日
    14
  • curl命令调试接口「建议收藏」

    一.场景再现大家好,很快就过年了,在这里先祝各位新年快乐,阖家欢乐!现在我们切入主题,在我们平时开发接口完成后,需要上线联调接口,而接口往往和业务逻辑精密联系,想要调试接口,就需要将业务测一遍,那么有没有更好的办法使得调试更简单?在这篇文章中,我将常用的接口分为两类:第一类:自己开发服务于自己系统的接口,该类接口调试可以在本地使用postman工具调试;第二类:不是自己开发,调用别人能力…

    2022年4月17日
    51
  • 【Java基础知识 15】java反射机制原理详解

    【Java基础知识 15】java反射机制原理详解一、类的加载与ClassLoader的理解1、加载将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.class对象。2、链接将Java类的二进制代码合并到JVM的运行状态之中的过程。验证:确保加载的类信息符合JVM规范,没有安全方面的问题; 准备:正式为类变量分配内存并设置类变量默认初始值的阶段,这些内存都将在方法区内进行分配; 解析:虚拟机常量池内的符号引用(常量名)替换为直接引用(地址)的过程。3、

    2022年8月24日
    6
  • css中的clear_html clear用法

    css中的clear_html clear用法之前一直不明白clear的意义何在,一直以为clear就是去掉元素本身都浮动属性(即float:none)。最近再次接触到clear才弄明白clear的本来意义。下面直接看实例:1.没有清除浮动.div1{float:left;

    2022年9月12日
    2

发表回复

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

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