【HDOJ5793】A Boring Question(数学题)
来源:互联网 发布:cf无限榴弹软件下载 编辑:程序博客网 时间:2024/05/22 03:52
记录一个菜逼的成长。。
找规律推导。
ans = (m^(n+1) - 1) / (m-1)
利用快速幂和乘法逆元对分数取模
#include <cstdio>#include <iostream>#include <cstring>#include <string>#include <algorithm>#include <cstdlib>#include <vector>#include <set>#include <map>#include <queue>#include <list>#include <deque>#include <cctype>#include <bitset>using namespace std;#define cl(a) memset(a,0,sizeof(a))typedef long long LL;typedef unsigned long long ULL;typedef pair<int,int> PII;const int INF = 0x3f3f3f3f;const LL MOD = 1000000007;LL PowerMod(LL a, LL b, LL c){ ULL ans = 1; a = a % c; while(b>0) { if(b % 2 == 1) ans = (ans * a) % c; b = b / 2; a = (a * a) % c; } return ans;}LL gcd(LL a,LL b){ return b==0?a:gcd(b,a%b);}void exgcd(LL a,LL b,LL &x,LL &y){ if(b==0) { x=1; y=0; return ; } exgcd(b,a%b,x,y); LL t=x; x=y; y=t-(a/b)*y;}int main(){ int T; scanf("%d",&T); while(T--){ LL n,m; scanf("%lld%lld",&n,&m); LL x, y; LL tmp = PowerMod(m,n+1,MOD) - 1,mod = MOD; m -= 1; LL Gcd = __gcd(m,mod); m /= Gcd;mod /= Gcd; exgcd(m,mod,x,y); LL ans = (x%mod+mod)%mod; printf("%lld\n",tmp * ans % MOD); } return 0;}
或者
#include<bits/stdc++.h>#define mod 1000000007using namespace std;long long powt(long long a,long long b){ long long r = 1; while(b) { if(b & 1) r = r * a % mod; a = a * a % mod; b >>= 1; } return r;}int main(){ long long t,n,m; scanf("%lld",&t); while(t--) { scanf("%lld%lld",&n,&m); printf("%lld\n",((powt(m,n + 1) - 1) * powt(m - 1,mod - 2) % mod + mod) % mod); } return 0;}
0 0
- 【HDOJ5793】A Boring Question(数学题)
- hdoj5793 A Boring Question【找规律】
- 【HDU5793】A Boring Question(数学题)
- HDU 5793 A Boring Question (数学)
- HDU 5793 A Boring Question(数论)
- hdu5793 A Boring Question
- A Boring Question
- A Boring Question HDU
- HDU5793-A Boring Question
- 【HDU】5793 A Boring Question
- HDU-5793-A Boring Question(打表找规律)
- HDU 5793 A Boring Question(快速幂+求逆元)
- hdu 5793A Boring Question 推公式(多校)
- HDU 5793 A Boring Question(快速幂&求逆元)
- HDU 5793 A Boring Question (打表找规律)
- HDU 5793 A Boring Question(逆元+快速幂)
- HDU 5793 A Boring Question (逆元)
- HDU 5793 A Boring Question 打表找规律
- UVa 11859 除法游戏(Nim游戏,质因子)
- Android桌面时间的一个小控件
- zzuli1005 + java的输出控制列数与左对齐等
- bootstrap整体构架图
- 线程与进程
- 【HDOJ5793】A Boring Question(数学题)
- hdu 2296 Ring(AC自动机+DP)
- 栈与队列--refresh的停车场
- 数据结构与算法之快速排序
- cheeriojs官方API(翻译)
- IOS笔记1
- CSS的三角形实现
- 超时问题
- POJ - 3104 Drying(二分)