---恢复内容开始---

题目链接:

https://vjudge.net/problem/1812693/origin

这题的mod运算很恶心,真的。。。

本题有正反两个思路,一个是正面求解其不能成立的情况,

          一个是反面求解,用total减。

我用的是正面求解。

一共有种情况:

  1. 全是球 :poww(2, a)*poww(2,c)-1

  2. 全是拍 : poww(2, a)*poww(2, b)-1

  3. 一拍多球(2种可能):    1 -- (poww(2, a)*poww(2, c)-1)*b(一个拍子!)

              2 -- (poww(2, a)*poww(2,c)-1)*d

  4. 啥也没 : poww(2, a)

加起来就好了, 由于数据很大,故而用到快速幂poww(我喜欢这样命名。。)

下面是AC代码:

#include <iostream>
#include <cstdio>
#define ll long long using namespace std; const int mod = ; ll poww(ll a, ll b)
{
ll ans = , base = a;
while(b)
{
if(b& != )
ans = (ans%mod)*(base%mod);
base = base%mod*base%mod;
b >>= ;
}
return ans%mod;
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
ll ans = ;
ll a, b, c, d;
scanf("%lld%lld%lld%lld", &a, &b, &c, &d); ans = (ans+(poww(, a)*(poww(, b)-)%mod))%mod; //只有拍子
ans = (ans+(poww(, a)*(poww(, c)-)%mod))%mod; //只有球
ans = (ans+(poww(, a)*(poww(, c)-)%mod*b%mod))%mod; //一拍N球
ans = (ans+(poww(, a)*(poww(, c))%mod*d%mod))%mod; // 一拍N球
ans = (ans+poww(, a)%mod)%mod; //啥也没 printf("%lld\n", ans%mod);
}
}

如有疑问,欢迎评论指出!

C - Rikka with Badminton --- HDU 6425 快速幂加组合数学的更多相关文章

  1. hdu 1061 快速幂

    求n^n的个位 Sample Input 2 3 4 Sample Output 7 6 直接快速幂了,注意要用long long #include<cstdio> long long q ...

  2. hdu 5187 快速幂 + 快速乘 值得学习

    就是以那个ai为分水岭,左边和右边都分别是单调增或单调减如图         就这四种情况,其中头两种总共就是两个序列,也就是从头到尾递增和从头到尾递减.         后两种方式就是把序列中德数分 ...

  3. hdu 1852(快速幂模+有除法的时候取模的公式)

    Beijing 2008 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/65535 K (Java/Others)Tota ...

  4. 本原串(HDU 2197 快速幂)

    本原串 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  5. hdu 4506 快速幂

    小明自从告别了ACM/ICPC之后,就开始潜心研究数学问题了,一则可以为接下来的考研做准备,再者可以借此机会帮助一些同学,尤其是漂亮的师妹.这不,班里唯一的女生又拿一道数学题来请教小明,小明当然很高兴 ...

  6. HDU 1097 快速幂

    #include<iostream> using namespace std; long long quick(long long a,long long b,int c) { ; a=a ...

  7. poj 3734 Blocks 快速幂+费马小定理+组合数学

    题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友 ...

  8. Scout YYF I POJ - 3744(概率dp + 矩阵快速幂)

    题意: 一条路上有n个地雷,你从1开始走,单位时间内有p的概率走一步,1-p的概率走两步,问安全通过这条路的概率 解析: 很容易想到 dp[i] = p * dp[i-1] + (1 - p) * d ...

  9. hdu5698瞬间移动(杨辉三角+快速幂+逆元)

    瞬间移动 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

随机推荐

  1. C#概念总结(一)

    1.C#程序的框架问题 首先是命名的空间申明   (NameSpace delclaration) 一个 ClASS class 方法 class属性 一个main 的方法 语句(Statement) ...

  2. uva11183 最小树形图模板题

    很简单的模板题,不多说了 #include<iostream> #include<cstring> #include<cstdio> #define INF 0x3 ...

  3. java 基础知识点必备

    1.为什么集合类没有实现Cloneable和Serializable接口? 克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的.因此,应该由集合类的具体实 ...

  4. 史上最简单的SpringCloud教程 | 第五篇: 路由网关(zuul)

    在微服务架构中,需要几个基础的服务治理组件,包括服务注册与发现.服务消费.负载均衡.断路器.智能路由.配置管理等,由这几个基础组件相互协作,共同组建了一个简单的微服务系统.一个简答的微服务系统如下图: ...

  5. 查找所有sphinx引擎表并生成创建表的语句

    -- 查找所有sphinx引擎select group_concat(table_name separator ' ') from information_schema.tables where en ...

  6. 如何保证Redis的高并发

    单机的redis几乎不太可能说QPS超过10万+,一般在几万. 除非一些特殊情况,比如你的机器性能特别好,配置特别高,物理机,维护做的特别好,而且你的整体的操作不是太复杂. Redis通过主从架构,实 ...

  7. 新的表格展示利器 Bootstrap Table Ⅰ

     1.bootstrap table简介及特征 Bootstrap Table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选.多选.排序.分 ...

  8. Dubbo 服务集群容错配置

    Dubbo集群容错是靠配置cluster属性来做 支持改属性的标签为<dubbo:service>,<dubbo:referece>,<dubbo:consumer> ...

  9. URL地址编码和解码

    0. 参考 [整理]关于http(GET或POST)请求中的url地址的编码(encode)和解码(decode) python3中的urlopen对于中文url是如何处理的? 中文URL的编码问题 ...

  10. request.user哪里来的?

    1.登录认证(auth认证登录后login后设置了session等信息包含用户的pk)      >>>>>               2.用户再次请求登录的时候,通过 ...