首页 > 其他分享 >CF232B Table

CF232B Table

时间:2023-09-08 10:46:19浏览次数:43  
标签:le ifac ll CF232B fac Table 105 mod

2023-08-07 16:29:49

题意

有一个 \(n\times m\)的矩阵,求使得每个 \(n\times n\)的矩阵中都有正好 \(k\)个点的方案数,方案数对 \(1e9+7\) 取模。 \(1\le n\le100,n\le m\le10^{18},0\le k\le n^2\)。

思路

通过观察样例并且自己手玩了一些数据后,我们发现,假设第 \(i\) 列放了 \(k\) 个数,那么如果 \(i+rn\) 列想做到前 \(n\) 列的点数和与 \(i\) 列前 \(n\) 列点数和相同,那么也得放 \(k\) 个。

所以我们只需要处理前 \(n\) 的情况就能推广到 \(m\) 列的情况了。只需要把这些相同的方案相乘即可,具体就是算取的时候带个指数吧。

转移很好想,令 \(f_{i,k}\) 表示前 \(i\) 列有 \(k\) 个点的方案数,\(x\) 表示 \(i\) 列放了 \(x\) 个点。那么有转移:

\[f_{i,k}=\sum\limits_{x=0}^{min(k,n)}f_{i-1,k-x}\times \binom{n}{x}^{m/n+(m \mod n\le i)} \]

\(O(n^2\log)\)预处理 \(\binom{n}{x}^{m/n+(m \mod n\le i)}\),然后 \(O(n^2K)\) 转移,空间复杂度 \(O(nK)\),也可以滚到 \(O(K)\)。

\(Code\)

ll n,m,K,fac[105],ifac[105],f[105][10005],cnt[105][105];
ll qpow(ll x,ll w){
    ll res=1;
    for(;w;w>>=1,x=x*x%mod)if(w&1)res=res*x%mod;
    return res;
}
ll C(ll x,ll y){
    return (fac[x]%mod*ifac[y]%mod)%mod*ifac[x-y]%mod;
}
int main(){
    cin>>n>>m>>K;
    fac[0]=1;
    for(ll i=1;i<=n;i++){
        fac[i]=fac[i-1]*i%mod;
        cnt[n+1][i]=(m/n+(m%n>=i))%(mod-1);
    }
    ifac[n]=qpow(fac[n],mod-2);
    for(ll i=n-1;~i;--i){
        ifac[i]=ifac[i+1]*(i+1)%mod;
    }
    for(ll i=0;i<=n;i++)
        for(ll j=1;j<=n;j++)
            cnt[i][j]=qpow(C(n,i),cnt[n+1][j]);
    f[0][0]=1;
    for(ll i=1;i<=n;i++)
        for(ll k=0;k<=K;k++)
            for(ll x=0;x<=min(n,k);x++){
                f[i][k]=(f[i][k]+f[i-1][k-x]*cnt[x][i]%mod)%mod;
            }
    cout<<f[n][K];
}

标签:le,ifac,ll,CF232B,fac,Table,105,mod
From: https://www.cnblogs.com/NBest/p/17686919.html

相关文章

  • iOS开发Swift-12-列表UI,TableViewController,动态响应Button勾选-待办事项App(1)
    1.创建新项目 为项目添加图标 2.将TableViewController添加到界面中 将箭头移动到TableView上来,代表它是首页(根页面).选中ViewController,点击Delete,对它进行删除.将代码ViewController.swift也删除掉. 新建一个CocoaTouchClass.  将TableViewControlle......
  • 关于element-ui 中table的问题以及解决
    这篇文章是记录上个月开发中的问题,有知道原理的请发送邮件0727我吐了,element-ui,这玩意咋这么多坑背景点击某个按钮,打开内嵌表单的dialog,然后不能让用户手动输入值,要根据后台去查可选项,将可选项变成可视化的表格,表格包含基本信息,再让用户去选;因为有两项值都是这样操作的,即通过......
  • Stable Diffusion WebUI插件:StyleSelectorXL 之七十七种绘画风格任君选择
    本文给大家分享一个应用于SDXL的新插件:StyleSelectorXL。通过在UI界面上简单的选择,我们就可以生成多种多样的风格图片,如动漫、水彩、平面、3D、线稿、涂鸦、剪纸、朋克、童话等等。基本介绍用过SDXL的同学,应该能切身感受到其出图质量相比之前的SD1.5、2.x等版本都有了......
  • 按钮触发table添加一行删除一行
    <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html> <head> <title>addHtml.html</title> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <meta......
  • Every derived table must have its own alias(sql语句错误解决方法)
    1、执行下面语句时,报错Everyderivedtablemusthaveitsownaliasselect*from(select*fromjt_noteswherecreateUser='b548323007b647809bb8e4192cf44195'limit0,10)2、解决方案,加一个别名就可以了select*from(select*fromjt_noteswherecreateUs......
  • 你折腾一天都装不上的插件,函数计算部署 Stable Diffusion 都内置了
    在进行函数计算StableDiffusion答疑的过程中,遇到很多同学在装一些插件的过程中遇到了难题,有一些需要安装一些依赖,有一些需要写一些代码,很多时候安装一个插件就能折腾几天,我们收集了很多同学需要的插件,这一次把比较难装的StableDiffusion插件都装好了。可以根据自己的需要自......
  • vxe-table 的 setActiveRow() 无效
    问题vxe-table的setActiveRow(row)方法无效。解决检查之后发现,vxe-column上忘记写:edit-render="{}。因为#edit="{row}"插槽必须要写:edit-render="{}......
  • 你折腾一天都装不上的插件,函数计算部署 Stable Diffusion 都内置了
    在进行函数计算StableDiffusion答疑的过程中,遇到很多同学在装一些插件的过程中遇到了难题,有一些需要安装一些依赖,有一些需要写一些代码,很多时候安装一个插件就能折腾几天,我们收集了很多同学需要的插件,这一次把比较难装的StableDiffusion插件都装好了。可以根据自己的需要自行......
  • iptable 设置指定端口访问
    一、添加规则:设置禁止所有IP访问指定端口8075[root@zabbix_server~]#iptables-IINPUT-ptcp--dport8075-jDROP二、测试telnet [root@zabbix_server~]#telnet127.0.0.18075Trying127.0.0.1...telnet:connecttoaddress127.0.0.1:Connectiontimedout......
  • a-table 控制列的展示和隐藏
    https://www.cnblogs.com/evident/p/16700615.htmltabkeColumns:[{title:'姓名',dataIndex:'name',key:'name',colSpan:(route.path==='SIM'?1:0)//如果页面是SIM则显示该列,否......