• 重返现世 解题报告


    重返现世

    kthmin-max容斥板子题

    题目要求至少得到(k)种东西的期望时间,转换后是求得到全集倒数第(k)个获得的东西的期望时间,然后可以套式子了

    [egin{aligned} max_k(S)&=sum_{varnothing ot=Tsubseteq S}(-1)^{|T|-k}inom{|T|-1}{k-1}min(T)\ &=sum_{varnothing ot=Tsubseteq S}(-1)^{|T|-k}inom{|T|-1}{k-1}frac{m}{sum limits_{iin T}p_i} end{aligned} ]

    然后我们这个答案式子做dp

    (dp_{i,j,k})代表前(i)个东西处理后(sum p=j)且为求(kmax)的贡献值

    这里说一下第三个状态,这个(k)其实就是式子里面的(k),我们设它只是为了转移这个组合式子而已(利用组合数的递推式子)

    转移有

    [dp_{i,j,k}=dp_{i-1,j,k}-dp_{i-1,j-p_i,k}+dp_{i-1,j-p_i,k-1} ]

    初始状态

    [dp_{i,0,0}=1 ]

    目标

    [sum_{i=1}^mfrac{m}{i}dp_{n,i,k} ]

    然后滚动一下数组就好了


    Code:

    #include <cstdio>
    #include <cctype>
    template <class T>
    void read(T &x)
    {
        x=0;char c=getchar();
        while(!isdigit(c)) c=getchar();
        while(isdigit(c)) x=x*10+c-'0',c=getchar();
    }
    const int mod=998244353;
    inline int add(int a,int b){return a+b>=mod?a+b-mod:a+b;}
    #define mul(a,b) (1ll*(a)*(b)%mod)
    int qp(int d,int k){int f=1;while(k){if(k&1)f=mul(f,d);d=mul(d,d),k>>=1;}return f;}
    int n,m,K,dp[2][10010][11],p[10010],cur;
    int main()
    {
    	read(n),read(K),read(m);
    	K=n-K+1;
    	for(int i=1;i<=n;i++) read(p[i]);
    	dp[0][0][0]=1;
    	for(int i=1;i<=n;i++)
    	{
    		cur^=1;
    		for(int j=0;j<=m;j++)
    			for(int k=0;k<=K;k++)
    			{
    				dp[cur][j][k]=dp[cur^1][j][k];
    				if(j>=p[i]&&k)
                    {
                        dp[cur][j][k]=add(dp[cur][j][k],mod-dp[cur^1][j-p[i]][k]);
                        dp[cur][j][k]=add(dp[cur][j][k],dp[cur^1][j-p[i]][k-1]);
                    }
    			}
    	}
    	int ans=0;
    	for(int i=1;i<=m;i++) ans=add(ans,mul(m,mul(qp(i,mod-2),dp[cur][i][K])));
    	printf("%d
    ",ans);
    	return 0;
    }
    

    2019.3.2

  • 相关阅读:
    Android获取IMEI码
    Android动态壁纸的制作教程
    Android编程之解决androidsupportv4打包问题
    获取文字的宽度(android)
    json 数据格式
    Android隐藏标题栏,全屏显示
    android 解析json数据格式(转)
    RelativeLayout 布局属性
    anroid 样式列表
    Windows Phone 7 淺談手勢(Gestures)運作
  • 原文地址:https://www.cnblogs.com/butterflydew/p/10460190.html
Copyright © 2020-2023  润新知