C - Rikka with Badminton --- HDU 6425 快速幂加组合数学
---恢复内容开始---
题目链接:
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 快速幂加组合数学的更多相关文章
- hdu 1061 快速幂
求n^n的个位 Sample Input 2 3 4 Sample Output 7 6 直接快速幂了,注意要用long long #include<cstdio> long long q ...
- hdu 5187 快速幂 + 快速乘 值得学习
就是以那个ai为分水岭,左边和右边都分别是单调增或单调减如图 就这四种情况,其中头两种总共就是两个序列,也就是从头到尾递增和从头到尾递减. 后两种方式就是把序列中德数分 ...
- hdu 1852(快速幂模+有除法的时候取模的公式)
Beijing 2008 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/65535 K (Java/Others)Tota ...
- 本原串(HDU 2197 快速幂)
本原串 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- hdu 4506 快速幂
小明自从告别了ACM/ICPC之后,就开始潜心研究数学问题了,一则可以为接下来的考研做准备,再者可以借此机会帮助一些同学,尤其是漂亮的师妹.这不,班里唯一的女生又拿一道数学题来请教小明,小明当然很高兴 ...
- HDU 1097 快速幂
#include<iostream> using namespace std; long long quick(long long a,long long b,int c) { ; a=a ...
- poj 3734 Blocks 快速幂+费马小定理+组合数学
题目链接 题意:有一排砖,可以染红蓝绿黄四种不同的颜色,要求红和绿两种颜色砖的个数都是偶数,问一共有多少种方案,结果对10007取余. 题解:刚看这道题第一感觉是组合数学,正向推了一会还没等推出来队友 ...
- Scout YYF I POJ - 3744(概率dp + 矩阵快速幂)
题意: 一条路上有n个地雷,你从1开始走,单位时间内有p的概率走一步,1-p的概率走两步,问安全通过这条路的概率 解析: 很容易想到 dp[i] = p * dp[i-1] + (1 - p) * d ...
- hdu5698瞬间移动(杨辉三角+快速幂+逆元)
瞬间移动 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
随机推荐
- 线性空间和异或空间(线性基)bzoj4004贪心+高斯消元优秀模板
线性空间:是由一组基底构成的所有可以组成的向量空间 对于一个n*m的矩阵,高斯消元后的i个主元可以构成i维的线性空间,i就是矩阵的秩 并且这i个主元线性无关 /* 每个向量有权值,求最小权极大线性无关 ...
- cf1084d 非常巧妙的树形dp
/* 给定n城市,m条道路,每条路耗油w,每个点有油a[i],从任意点出发,求最大可以剩下的油 dp[i]表示从i开始往下走的最大收益,ans表示最大结果 因为走过的路不能走,所以可以想到最优解肯定经 ...
- bat 直接编译vs项目
直接项目.sln拖到bat上: @ECHO OFFset path=%~dp1%~nx1 C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.e ...
- python WebDriver如何处理右键菜单
WebDriver如何处理右键菜单 一.背景 在学习selenium webdriver的过程中,遇到这样一个问题.ActionChains类中提供了context_click的方法,它可以用来在we ...
- 微信小程序 Video默认横屏
wxml文件 <video id='myvideo' src='你的视频文件路径'> </video> js文件 onLoad: function (options) { va ...
- 【转】asp.net Core 系列【一】——创建Web应用
ASP.NET Core 中的 Razor 页面介绍 Razor 页面是 ASP.NET Core MVC 的一个新功能,它可以使基于页面的编码方式更简单高效. 若要查找使用模型视图控制器方法的教程, ...
- 使用layer弹出Ueditor实现父子传值
Layear的代码: function tankuang() { layer.open({ type: 2, title: false ...
- asp.net core WebApi 返回 HttpResponseMessage
ASP.NET WebApi 2 中的示例代码: [Route("values/{id}")] public async Task<HttpResponseMessage&g ...
- DevExpress中的GridControl控件设置了列Readonly后,想双击弹出明细的实现
OptionsBehavior.Editable = true时,会有二个对象触发事件:view触发ShownEditor 事件(第一单击时)和内置编辑器的DoubleClick事件所以必须处理这二个 ...
- 一脸懵逼学习Hive(数据仓库基础构架)
Hive是什么?其体系结构简介*Hive的安装与管理*HiveQL数据类型,表以及表的操作*HiveQL查询数据***Hive的Java客户端** Hive的自定义函数UDF* 1:什么是Hive(一 ...