石子阵列(组合数学)

链接:https://www.nowcoder.com/acm/contest/157/A
来源:牛客网

题目描述

xb有m种石子,每种无限个,Ta想从这些石子中取出n个,并按顺序排列起来,为了好看,相邻的石子不能相同。xb想知道有多少种排列的方法。

输入描述:

第一行有两个正整数n,m。

输出描述:

第一行一个整数,表示在m种石子中取出n个的排列方案数模1000000007后的值。

示例1

输入
1 1
输出
1

示例2

输入
2 3
输出
6

示例3

输入
3 3
输出
12

备注:

对于100%的测试数据:
1 ≤ n, m ≤ 1000
数据量较大,注意使用更快的输入输出方式。

水题。。。

1
2
3
4
5
6
7
8
9
10
11
12
#include<bits/stdc++.h>
using namespace std;

int main(){
long long n,m,ans;
scanf("%lld%lld",&n,&m);
ans=m;
for(int i=1;i<n;i++)
ans=(ans*(m-1))%1000000007;
printf("%lld\n",ans);
return 0;
}

点击查看
欢迎关注公众号,感谢支持 !
0%