【数学】【AOJ-614】座位安排

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;
}

 

 

转载于:https://www.cnblogs.com/ahu-shu/p/3512488.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值