题解 | #旋律的总数#

旋律的总数

https://ac.nowcoder.com/acm/contest/20111/A

题解:

先放代码:

#include <bits/stdc++.h>
#define ll long long

using namespace std;

const ll mod=1e9+7;
ll T,n,m;

ll quickPower(ll a, ll b)
{
	ll ans = 1,base=a;
	while(b)
    {
		if(b & 1)
			ans = ans*base%mod;
        base = base*base%mod;
		b >>= 1;
	}
	return ans%mod;
}

int main()
{
	scanf("%lld" ,&T);
	while(T--)
	{
		scanf("%lld%lld" ,&n ,&m);
		cout << quickPower(m,n-1) << endl;
	}
	return 0;
}

- 本题要用到快速幂,不会的朋友可以自己在百度搜索,然后自学一下,挺简单的。

好,我们开始讲题:

  1. 根据题目意思,k的范围是1—(m-1)的,所以每一位就有m种情况。
  2. 然后呢,一共有n位数字,所以,一共是 m 的 n 次方 种数列
  3. 最后,因为每个数列会重复 m 次,所以,我们只要算出 m 的 (n-1) 次方 就可以了

提示:别用base*=base%mod ,会错的。

结束,谢谢

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务