首页 > 其他分享 >多校第六场 1011 hdu 5363Key Set(组合数学)

多校第六场 1011 hdu 5363Key Set(组合数学)

时间:2023-04-23 21:39:25浏览次数:48  
标签:第六场 Set 奇数 LL hdu ret 偶数 num mod


题目链接:

hdu 5363


题目大意:

给出一个到n的自然数集合,问它有多少个子集,元素之和是偶数。


题目分析:

  • 首先偶数不会导致集合的和的奇偶性发生变化;奇数会导致集合的和的奇偶性发生变化。我们设奇数m1个,偶数m2个。
  • 所以我们可以选取0~m1个偶数,但是只能选取偶数个奇数。
  • 那么偶数的方案数就是 ∑i=0m1Cim1=(1+1)n=2m1
  • 那么奇数的方案数就是 ∑i=0且i是偶数m2Cim2=(1+1)n−(1−1)n2=2n−1

AC代码:

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;
typedef long long LL;
const LL mod = 1000000007;

int n,t;

LL pow1 ( LL num , LL n )
{
    LL ret = 1;
    while ( n )
    {
        if ( n&1 )
        {
            ret *= num;
            ret %= mod;
        }
        num = num*num;
        num %= mod;
        n >>= 1;
    }
    return ret;
}

int main ( )
{
    scanf ( "%d" , &t );
    while ( t-- )
    {
        scanf ( "%d" , &n );
        LL ans = pow1 ( 2 , n-1 );
        cout << (ans-1+mod)%mod << endl;
    }
}


标签:第六场,Set,奇数,LL,hdu,ret,偶数,num,mod
From: https://blog.51cto.com/u_7936627/6218739

相关文章

  • hdu 5441 长春区域赛网络赛 1005 Travel(并查集)
    题目链接:hdu5441题目大意:有一个n个点的无向图,给出m条边的边权,给出q次询问,每次给出一个值,求用到所有边权不大于这个值的边的情况下,能够互相到达的点对的个数(自己到自己不算)题目分析:首先我们对于边按照边权从小到大排序,对于询问按照值从小到大排序。枚举每次询问,从前到后扫描边,如果......
  • hdu 5442 长春区域赛网络赛 1006 Favorite Donut(后缀数组)
    题目链接:hdu5442题目大意:给出一个环,每颗珠子有一个甜度,选择第一个珠子和吃的方向,问得到的吃珠子的字符串的字典序最大的,如果有多个,选取位置最靠前的,如果还是多个,选择顺时针吃的。题目分析:-首先构造一个字符串,首先正着按环吃,那么就是字符串正着写两遍,连接在一起;中间用没有出现过的......
  • hdu 5446 长春区域赛网络赛1010 Unknown Treasure(lucas定理+中国剩余定理+移位乘法)
    题目链接:hdu5446题目大意:求出Cmn%M,M=p1⋅p2⋯pk题目分析:首先对于每个质数pi我们,我们可以利用Lucas定理求出Cmn%pi的值,Lucas定理如下:Cmn%p=Cm/pn/p⋅Cm%pn%p%p然后我们可以利用中国剩余定理求取最后答案:M=∏i=1kpi,Mi=M/piCmn%M=∑i=1kCmn%pi⋅Mi⋅inv[Mi]因为做乘法......
  • hdu 5444 长春区域赛网络赛 1008 Elven Postman(模拟)
    题目链接:hdu5444题目大意:给出一个序列,这个序列的第一个点是树的根节点,每次操作从当前点走到当前最靠右的每走过的点(点的序号越小越靠右),问将物品从根送到某个点的行进路线.题目分析:个人认为难在题意。。。构造出这个树之后,直接从目的地走回根节点就可以得到要求的路径。然后如何构......
  • SQLite Reset Primary Key Field
    SQLiteResetPrimaryKeyField回答1Trythis:deletefromyour_table;deletefromsqlite_sequencewherename='your_table';SQLiteAutoincrementSQLitekeepstrackofthelargestROWIDthatatablehaseverheldusingthespecialSQLITE_SEQ......
  • HashSet以及TreeSet实现了哪些接口?有什么作用?
    HashSet简介HashSet是Java集合框架中非常常用的一种无序、不可重复的集合。它是通过哈希表来实现的,可以快速检索元素并消除重复。泛型的作用泛型可以帮助我们在编译时就发现类型错误,从而减少了运行时错误的发生。在使用HashSet时,我们通常会指定它的泛型类型为某个具体的类或接......
  • 查看oracle数据库编码格式;ORACLE数据库NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET区别
    查看Oracle数据库字符编码格式得方法,有以下两种,第二种方法有注释,第一种没有Select*fromnls_database_parameter;Select*fromsys.props$;NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET。如下:SQL>select*fromnls_database_parameters;PARAMETER              ......
  • 从0开始写三维“软”引擎.part1 - 2013.7.13 - David Rousset
    I’dtoliketosharewithyouhowI’velearnedtobuildwhat’sknownasa“3Dsoftengine”throughaseriesoftutorials.“Softwareengine”meansthatwewilluseonlytheCPUtobuilda3Dengineinanoldschoolway(rememberDoomonyour80386?).I......
  • Solution Set - “卷起击碎定论的漩涡”
    目录0.「CF1788F」XOR,Tree,andQueries1.「CF1815F」OHNO1(-2-3-4)2.「CF1787F」InverseTransformation3.「CF1797F」LiHuaandPath4.「CF1815B」SumGraph5.「AGC022C」RemainderGame6.「CTT2021」「洛谷P8986」基因编辑7.「CTT2021」「洛谷P8985」魔塔OL⭐......
  • Java 把 Map 的值(Value)转换为 Array, List 或 Set
    概述在这篇短文中,我们将会展示如何把Map中的值取出来,转换为一个Array,、List或者一个Set。 当然,你可以使用JavaJDK来进行转换,你也可以使用Guava来进行转换。 首先,让我们来看看,如何使用原生的JavaJDK把一个Map的值换行为Array。@TestpublicfinalvoidgivenU......