【qduoj - 纳新题】小明的dp(快速幂 + 乘法原理)(简单组合数学)
生活随笔
收集整理的這篇文章主要介紹了
【qduoj - 纳新题】小明的dp(快速幂 + 乘法原理)(简单组合数学)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題干:
描述
?
小明有n種珠寶,每種無限個,他想從這些珠寶中取出m個,編成手鏈(長鏈哦),并按順序排列起來,為了好看,相鄰的珠寶不能相同。小明想知道有多少種排列的方法。
輸入
?
第一行一個整數t代表樣例個數第二行有兩個正整數m,n。
1 ≤ m, n ≤ 1000
輸出
?
第一行一個整數,表示在n種珠寶中取出m個的排列方案數模1000000007后的值
輸入樣例 1?
1 3 3輸出樣例 1
12解題報告:
? ? 據說n和m的輸入順序是個坑?
AC代碼:
#include<bits/stdc++.h> #define ll long long using namespace std; const ll mod = 1000000007; ll m , n; ll qpow(ll a,ll k) {ll res = 1;while(k) {if(k&1) {res = (res*a)%mod;}k>>=1;a=(a*a)%mod;}return res; }int main() {int t;cin>>t;while(t--) {scanf("%lld%lld",&m,&n);ll ans = (n%mod)*(qpow(n-1,m-1))%mod;printf("%lld\n",ans%mod);}return 0 ; }?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的【qduoj - 纳新题】小明的dp(快速幂 + 乘法原理)(简单组合数学)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 收益暴跌90% 挖矿玩家选择关机:显卡价
- 下一篇: Windows下 Python3.7.0