解题思路:先用dfs将可行的排队顺序总数找出,然后再算出小朋友排队的总数
如样例
我们用dfs找出可行的排列顺序为(0为1元的小朋友,1为2元的小朋友)
0011
0101
两种排队顺序
然后将小朋友放入:
第一个1元小朋友有C12 种方法排队第二有C11
2元小朋友同理
最后答案为
可行的排队顺序(ans)乘上小朋友们的排队方法
ans*(1元小朋友们的方法)*(2元小朋友们的方法)
注意事项:
参考代码:
#include<bits/stdc++.h> using namespace std; int m,n,k; int ans=0; void dfs(int i,int j,int z) { if(i==m) { ans++; return; } if(j<n) { //cout<<i<<' '<<j<<' '<<z<<endl; dfs(i+1,j+1,z); } if(j>z&&z<k) { //cout<<i<<' '<<j<<' '<<z<<endl; dfs(i+1,j,z+1); } } int main() { cin>>m>>n>>k; dfs(0,0,0); for(int i=1;i<=n;i++) { ans*=i; } for(int i=1;i<=k;i++) { ans*=i; } cout<<ans; return 0; }
0.0分
0 人评分
矩形面积交 (C语言代码)浏览:1516 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:542 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:900 |
C语言程序设计教程(第三版)课后习题5.7 (Java代码)浏览:889 |
WU-蓝桥杯算法提高VIP-交换Easy (C++代码)浏览:1119 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1607 |
三角形 (C++代码)递推浏览:760 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:886 |
1642题解浏览:716 |
小九九 (C语言描述,不看要求真坑爹)浏览:985 |