• 洛谷P6075 子集选取


    传送门

    题目描述

    给定 nn 个元素的集合 S= \left{ \ 1,2…n \right}S={ 1,2…n} 和整数kk,现在要从SS 中选出若干子集 A_{i,j}A
    i,j

    (A \subseteq SA⊆S,1 \le j \le i \le k1≤j≤i≤k)排成下面所示边长为 kk 的三角形(因此总共选出了 \frac{1}{2} k(k+1)
    2
    1

    k(k+1) 个子集)。

    A1,1 A2,1A2,2 A3,1A3,2A3,3  Ak,1Ak,2Ak,3Ak,k" role="presentation" style="text-align: center; position: relative;">A1,1 A2,1A2,2 A3,1A3,2A3,3  Ak,1Ak,2Ak,3Ak,k

    A
    1,1

    A
    2,1

    A
    3,1


    A
    k,1

    A
    2,2

    A
    3,2


    A
    k,2

    A
    3,3


    A
    k,3



    A
    k,k

    此外,JYY 对选出的子集之间还有额外的要求:选出的这些子集必须满足 A_{i,j} \subseteq A_{i,j-1}A
    i,j

    ⊆A
    i,j−1

    且 A_{i,j} \subseteq A_{i-1,j}A
    i,j

    ⊆A
    i−1,j


    JYY 想知道,求有多少种不同的选取这些子集的方法。因为答案很大,JYY 只关心输出答案模 1,000,000,0071,000,000,007 的值。

    对于两种选取方案 A = \left{ \ A_{1,1} , A_{2,1} , A_{k,k} \right}A={ A
    1,1

    ,A
    2,1

    ,A
    k,k

    } 和 B = \left{ \ B_{1,1} , B_{2,1} , B_{k,k} \right}B={ B
    1,1

    ,B
    2,1

    ,B
    k,k

    } 只要存在 i,ji,j 满足 A_{i,j} \neq B_{i,j}A
    i,j


    =B
    i,j

    ,我们就认为 AA 和 BB 是不同的方案。

    输入格式

    输入包含一行两个整数 nn 和 kk。

    输出格式

    一行一个整数,表示不同方案数目模 1,000,000,0071,000,000,007 的值。

    输入输出样例

    输入 #1复制
    2 2
    输出 #1复制
    16

    说明/提示

    对于 100%100% 的数据,1 \le n1≤n,k \le 10^9k≤10
    9

    上代码:

    #include
    using namespace std;
    
    typedef long long ll;
    
    inline ll read(){char ch=getchar();int f=1;while(ch<'0' || ch>'9') {if(ch=='-') f=-f; ch=getchar();}
    	ll x=0;while(ch>='0' && ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();return x*f;}
    
    ll n,k;
    const ll MOD=1e9+7;
    
    inline ll power(ll x,ll y) {
    	ll ans=1;
    	while(y) {
    		if(y&1) ans=(ans*x)%MOD;
    		x=(x*x)%MOD; y>>=1;
    	} return ans;
    }
    
    int main(){
    	n=read(),k=read();
    	printf("%lld\n",power(2,n*k));
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    使用idea中git创建分支,并推送代码
    使用python校验密码强度
    Python 字符串格式化方法记录
    解码拼控设备IP地址忘记如何找回
    Linux基本命令(四)——firewall
    后羿采集器的使用出现了问题
    docker 安装nacos,使用自定义mysql
    《数据库》期末考试复习手写笔记-第11章 并发控制(锁)【10分】
    Linux下安装Docker(centOS 8)
    leetcode - 229. Majority Element II
  • 原文地址:https://blog.csdn.net/lzx_xzl_______/article/details/126521993