您的位置:首页 > 其它

AOJ614 座位安排

2014-02-26 14:05 225 查看
Description
宣讲会上有连续编号为1...N的N个座位,每个座位只能坐一个人,有N个人,学校有M个不同专业,如果相邻座位的同学的专业相同,就会发生悄悄话现象,求有多少种情况可能发生悄悄话现象。(不一定每个专业都有人来)
 

Input
输入包括多组数据,以文件(EOF)结束。

每组测试数据两个整数N(1<=N<=9),M(1<=M<=9)。
 

Output
每组测试数据输出一个整数,表示符合题目的可能的情况数。
 

Sample Input

3 3


 
Sample Output

15

思路:
排列组合问题,总排法m^n种 减去两两不同的情况即 m^n-m*((m-1)^(n-1))

参考代码:


#include <stdio.h>
int pow(int n,int m)//求m^n
{
int sum=1;
int i;
for(i=0;i<n;i++)
sum*=m;
return sum;
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
int sum=m,i,sum1;
for(i=0;i<n-1;i++)
sum*=(m-1);
sum1=pow(n,m);
printf("%d\n",sum1-sum);
}
return 0;
}


 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: