【数学】【AOJ-614】座位安排
Description
宣讲会上有连续编号为1...N的N个座位,每个座位只能坐一个人,有N个人,学校有M个不同专业,如果相邻座位的同学的专业相同,就会发生悄悄话现象,求有多少种情况可能发生悄悄话现象。(不一定每个专业都有人来)
Input
输入包括多组数据,以文件(EOF)结束。
每组测试数据两个整数N(1<=N<=9),M(1<=M<=9)。
每组测试数据两个整数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; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步