(HDU 5793)2016 Multi-University Training Contest 6 A Boring Question (规律)
2016-08-06 19:55
519 查看
思路
打表发现规律。。对于m相同时,答案是以m为比的等比数列的和
ans=mn+1−1m−1
打表代码
#include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define rep(i,a,b) for(int i=a;i<b;i++) #define debug(a) printf("a =: %d\n",a); const int INF=0x3f3f3f3f; const int maxn=1e6+50; const int Mod=1000000007; const double PI=acos(-1); typedef long long ll; using namespace std; int n,m; ll sum=0; ll jc(ll x){ ll ret=1; for(ll i=2;i<=x;i++) ret=ret*i; return ret; } ll get(ll kj1,ll kj){ return jc(kj1)/jc(kj)/jc(kj1-kj); } void dfs(int dep,vector<int> v,int cur){ if (dep==m){ ll ret=1; for(int i=0;i<dep-1;i++){ ret=ret*get(v[i+1],v[i]); } // cout<<ret<<endl; sum+=ret; return; }else if (dep>m) return; for(int i=cur;i<=n;i++){ vector<int> vv(v); vv.push_back(i); dfs(dep+1,vv,i); } } int main() { #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif for(m=1;m<=10;m++) for(n=1;n<=10;n++){ sum=0; vector<int> v; dfs(0,v,0); cout<<n<<" "<<m<<" "<<sum<<endl; } return 0; }
代码
#include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define rep(i,a,b) for(int i=a;i<b;i++) #define debug(a) printf("a =: %d\n",a); const int INF=0x3f3f3f3f; const int maxn=1e6+50; const int Mod=1000000007; const double PI=acos(-1); typedef long long ll; using namespace std; int n,m; // n m // m^0+m^1+...+m^n ll qPow(ll x,ll n){ ll ret=1; while(n){ if (n&1) ret=(ret*x)%Mod; x=(x*x)%Mod; n>>=1; } return ret; } ll solve(){ ll fz=(qPow(m,n+1)-1+Mod)%Mod; ll fmr=qPow(m-1,Mod-2); // cout<<fz<<" "<<fmr<<endl; return (fz*fmr)%Mod; } int main() { #ifndef ONLINE_JUDGE freopen("in.txt","r",stdin); #endif int T; scanf("%d",&T); while(T--){ scanf("%d %d",&n,&m); printf("%lld\n",solve()); } return 0; }
相关文章推荐
- hdu 5793 A Boring Question(2016 Multi-University Training Contest 6——快速幂取模)
- HDU 5793 A Boring Question(推公式+求逆元)——2016 Multi-University Training Contest 6 (1001)
- HDU 5810 Balls and Boxes(打表找规律)——2016 Multi-University Training Contest 7 1002
- hdu 5795 2016 Multi-University Training Contest 6(SG+打表找规律)
- HDU 5754 Life Winner Bo(找规律 + 威佐夫博弈)--2016 Multi-University Training Contest 3
- HDU 5826 physics(积分 找规律)——2016 Multi-University Training Contest 8
- HDU 5795 A Simple Nim(SG打表找规律)——2016 Multi-University Training Contest 6
- hdu 5793 2016 Multi-University Training Contest 6(快速幂+乘法逆元)
- HDU 5821 Ball 2016 Multi-University Training Contest 8
- hdu 5773 2016 Multi-University Training Contest 4(LIS变形)
- 【Hdu 5723】Abandoned country【2016 Multi-University Training Contest 1】
- hdu 5781 ATM Mechine(2016 Multi-University Training Contest 5——DP)
- 2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树区间更新+差分数组)
- (HDU 5726)2016 Multi-University Training Contest 1 GCD(数学)
- 贪心——HDU 5813 ( 2016 Multi-University Training Contest 7 1005 )
- (HDU 5810)2016 Multi-University Training Contest 7 Elegant Construction (期望、方差、二项分布)
- hdu 5821 Ball(2016 Multi-University Training Contest 8——贪心+排序)
- HDU 5775 Bubble Sort(线段树)(2016 Multi-University Training Contest 4 1012)
- hdu 5775 2016 Multi-University Training Contest 4(归并排序)
- HDU 5861 Road (线段树) 2016 Multi-University Training Contest 10