【JSOI2015】【JZOJ 4058】子集选取

来源:互联网 发布:南京域名备案中心 编辑:程序博客网 时间:2024/05/19 07:42

Description

这里写图片描述
这里写图片描述

Analysis

F(n,k)表示读入n,k的答案

First step

考虑到每个元素之间其实是互相独立的,所以F(n,k)=F(1,k)n
我们只需快速求出F(1,k)

Second step

这是一个三角形
A[i]表示第i列最后一个1的行(该行以上全为1,以下全为0)
显然有A[i]>=A[i+1]
G[i][j]表示第i行,最后一个1的行为j的方案数,则
G[i][j]=kp=jG[i1][p]=G[i1][j]+G[i][j+1]
这便是组合数的形式
写出来,发现其实是倒放的杨辉三角
G[i,j]
1
14
136
1234
11111
因为可以在任意一个位置结束,也可以全不选,所以
F(1,k)=1+G[i][j]=2k

所以Ans=2nk

Code

#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int N=11,mo=1e9+7;ll n,k;ll qmi(ll x,ll n){    ll t=1;    for(;n;n>>=1)    {        if(n&1) t=t*x%mo;        x=x*x%mo;    }    return t;}int main(){    freopen("subset.in","r",stdin);    freopen("subset.out","w",stdout);    scanf("%lld %lld",&n,&k);    printf("%lld\n",qmi(2,n*k));    return 0;}
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 考差了我该怎么办 发票认购簿丢了怎么办 税率开错为17%了怎么办 增值税票开错了怎么办 发票名字写错了怎么办 红米2卡开机画面怎么办 三星s4字库坏了怎么办 百度云上传很慢怎么办 入户网线头断了怎么办 针织的衣服起球怎么办 网线被车挂断了怎么办 挂了光纤跑了怎么办 cf天赋点多了怎么办 cf天赋点点错了怎么办 警用记录仪丢了怎么办 被伪基站覆盖了怎么办 加热包的水喝了怎么办 剩米饭放硬了怎么办 肉罐头拉环断了怎么办 5大战区拥兵自重怎么办 买的期房停工了怎么办 怀孕后长了副乳怎么办 耳朵冻的红肿了怎么办 吃螃蟹吃柿子了怎么办 吃了螃蟹和柿子怎么办 螃蟹与柿子同吃怎么办 手被鞭炮炸伤了怎么办 索尼l36h变砖了怎么办 oppor9s手机忘记解锁图案怎么办 索尼z5刷死机了怎么办 魅蓝note3被锁定怎么办 oppo图案锁忘了怎么办 手机图案锁忘w怎么办输 手机图案解锁密码忘了怎么办 忘记htc手机锁屏怎么办 我手机密码忘了怎么办 小米5x忘记密码怎么办 oppo忘记手机解锁图案怎么办 手机解锁图案忘了怎么办 苹果id给锁了怎么办 苹果手机忘了ld怎么办