HDU 6425(羽毛球组合 **)
题意是说有四种同学,没有球拍没有球的( a ),只有球拍的( b ),只有球的( c ),既有球拍又有球的( d );现在要去打羽毛球,每个人都可以选择去或者不去,问有多少种无法打羽毛球的情况。
无法打羽毛球的原因可以分成:球不够或球拍不够。
这样分不是很清楚,改成:只是球不够,只是球拍不够,球和球拍都不够。
先看第一种:只是球不够。球只需要一颗就够了,也就是说有球的同学都不去,同时有球拍的同学至少去两位,情况数:2^b - C(b,1) - C(b,0);
再看第二种:只是球拍不够。带球的同学至少去一位,带球拍的同学最多去一位,情况数:( C(b,1) * (2^c - 1) ) + ( C(d,1) * 2^c ) + ( 2^c - 1 );
再看第三种:球和球拍都不够。带球的同学都不去,带球拍的同学最多去一位,情况数:b + 1;
由于第一种同学是什么都没有的,所以对球数和球拍数不会造成影响,可以直接在上述三种情况数求和的基础上使用乘法原理,即乘以 ( 2^a )即可。
这道题的数量级比较大,要注意不停地取模,否则会超出 long long 的存储范围。
代码如下:
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const __int64 mod = ;
__int64 a,b,c,d,wu,aa,bb,cc;
__int64 quickpow(__int64 n)
{
if(n==) return ;
else if(n==) return ;
if(n&) return (quickpow(n>>)%mod*(quickpow(n>>)%mod)*)%mod;
return (quickpow(n>>)%mod*(quickpow(n>>)%mod))%mod;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&d);
aa = quickpow(a);
bb = quickpow(b);
cc = quickpow(c);
//printf("%I64d %I64d %I64d\n",aa,bb,cc);
wu = (aa%mod*((bb--b)%mod+((b+d+)%mod*(cc%mod))%mod))%mod;
printf("%I64d\n",wu);
}
return ;
}
HDU 6425(羽毛球组合 **)的更多相关文章
- HDU 6425 Rikka with Badminton(组合问题签到)题解
题意:问你有多少种选法使得不能满足大于等于2个拍子且大于等于1个球. 思路:数学组合问题,分类讨论一下,刚开始的时候分的很乱,写的乱七八糟的...还有注意MOD,基本上有大数相乘的地方都要先MOD一下 ...
- HDU 1521 排列组合 指数型母函数
排列组合 Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status D ...
- Hdu 1521 排列组合
a1 n1 a2 n2 ... ak nkn=n1+n2+...+nk从n个数中选r个排列(不是组合噢)// 指数型母函数// 模板#include <iostream> #include ...
- HDU 1536 S-Nim (组合游戏+SG函数)
题意:针对Nim博弈,给定上一个集合,然后下面有 m 个询问,每个询问有 x 堆石子 ,问你每次只能从某一个堆中取出 y 个石子,并且这个 y 必须属于给定的集合,问你先手胜还是负. 析:一个很简单的 ...
- HDU 1521 排列组合 (母函数)
题目链接 Problem Description 有n种物品,并且知道每种物品的数量.要求从中选出m件物品的排列数.例如有两种物品A,B,并且数量都是1,从中选2件物品,则排列有"AB&qu ...
- hdu 4497(排列组合+LCM和GCD)
GCD and LCM Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total ...
- hdu 1521 排列组合 —— 指数型生成函数
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1521 标准的指数型生成函数: WA了好几遍,原来是多组数据啊囧: 注意精度,直接强制转换(int)是舍去小 ...
- hdu 4704 Sum(组合,费马小定理,快速幂)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4704: 这个题很刁是不是,一点都不6,为什么数据范围要开这么大,把我吓哭了,我kao......说笑的, ...
- hdu 3908 Triple(组合计数、容斥原理)
Triple Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others) Total Su ...
随机推荐
- RFC2544测试指标
RFC2544测试指标 参考:https://wenku.baidu.com/view/3abbb5bf960590c69ec3769d.html RFC2544性能测试介绍 参考:https:// ...
- opencv图像融合(大头)
单纯的变大再覆盖上去,头部检测信息不够全,效果实在是太差,就不多说了,只是按照自己的思路玩一玩,没有达到抖音上那么好的效果 import cv2 as cv import numpy as np im ...
- 【cf842C】 Ilya And The Tree(dfs、枚举因子)
C. Ilya And The Tree 题意 给一棵树求每个点到根的路上允许修改一个为0,gcd的最大值. 题解 g是从根到当前点允许修改的最大gcd,gs为不修改的最大gcd.枚举当前点的因子,更 ...
- 【BZOJ5289】[HNOI2018]排列(贪心)
[BZOJ5289][HNOI2018]排列(贪心) 题面 BZOJ 洛谷 题解 这个限制看起来不知道在干什么,其实就是找到所有排列\(p\)中,\(p_k=x\),那么\(k<j\),其中\( ...
- Linux里文件和文件夹权限的含义
文件的权限: r : 可以读取此文件的实际内容. w: 可以编辑.新增或者是修改该文件的内容(但不含删除该文件),如果没有r权限,无法w. x : 该文件具有被系统执行的权限,可以删除. 文件夹的 ...
- hdu 2609 How many(最小表示法)
Problem Description Give you n ( n < 10000) necklaces ,the length of necklace will not large than ...
- 万物互联之~RPC专栏
3.RPC引入 上篇回顾:万物互联之~深入篇 Code:https://github.com/lotapp/BaseCode/tree/master/python/6.net/6.rpc/ 其他专栏最 ...
- IO多路复用机制详解
高性能IO模型浅析 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-blocking ...
- Docker的脚本安装
官方镜像支持 curl -sSL https://get.docker.com/ | sh 国内镜像站 curl -sSL https://get.daocloud.io/docker | sh cu ...
- 可以精准解析国内外网站的DNS
Pure DNS https://puredns.cn/ XsicoDNS https://dns.xsico.cn/ Fun DNS http://www.fundns.cn/ Bai DNS ht ...