codeforces 630G Challenge Pennants(组合数学)
来源:互联网 发布:seo教材 编辑:程序博客网 时间:2024/04/27 21:58
Description
Because of budget cuts one IT company established new non-financial reward system instead of bonuses.
Two kinds of actions are rewarded: fixing critical bugs and suggesting new interesting features. A man who fixed a critical bug gets "I fixed a critical bug" pennant on his table. A man who suggested a new interesting feature gets "I suggested a new feature" pennant on his table.
Because of the limited budget of the new reward system only 5 "I fixed a critical bug" pennants and 3 "I suggested a new feature" pennants were bought.
In order to use these pennants for a long time they were made challenge ones. When a man fixes a new critical bug one of the earlier awarded "I fixed a critical bug" pennants is passed on to his table. When a man suggests a new interesting feature one of the earlier awarded "I suggested a new feature" pennants is passed on to his table.
One man can have several pennants of one type and of course he can have pennants of both types on his table. There are n tables in the IT company. Find the number of ways to place the pennants on these tables given that each pennant is situated on one of the tables and each table is big enough to contain any number of pennants.
Input
The only line of the input contains one integer n (1 ≤ n ≤ 500) — the number of tables in the IT company.
Output
Output one integer — the amount of ways to place the pennants on n tables.
Sample Input
2
24
题目大意:有一种A类旗子,一共有5个,一种B类旗子,一共有3个,给你n个桌子,问有多少种摆放方法.
解体思路:A类旗子的摆放方法:11111 1112 122 113 14 23 5 即C(N,5)+4*C(N,4)+,3*C(N,3)+3*C(N,3)+2*C(N,2)+2*C(N,2)+C(N,1)
B类旗子的摆放方法: 111 12 3 即C(N,3)+2*C(N,2)+C(N,1);
代码如下:
#include<stdio.h>int main(){long long n;long long ans1,ans2;while(scanf("%lld",&n)!=EOF){if(n==1){ans1=1;ans2=1;}else if(n==2){ans1=4*(n-1)*n/2+n;ans2=(n-1)*n+n;}else if(n==3){ans1=6*(n-2)*(n-1)/2*n/3+4*(n-1)*n/2+n;ans2=(n-2)*(n-1)/2*n/3+(n-1)*n+n;//ans=7*(n-2)*(n-1)/2*n/3+3*n*n-n;}else if(n==4){ans1=4*(n-3)*(n-2)/2*(n-1)/3*n/4+6*(n-2)*(n-1)/2*n/3+4*(n-1)*n/2+n; ans2=(n-2)*(n-1)/2*n/3+(n-1)*n+n;//ans=4*(n-3)*(n-2)/2*(n-1)/3*n/4+7*(n-2)*(n-1)/2*n/3+3*n*n-n;}else if(n>=5){ans1=(n-4)*(n-3)/2*(n-2)/3*(n-1)/4*n/5+4*(n-3)*(n-2)/2*(n-1)/3*n/4+6*(n-2)*(n-1)/2*n/3+4*(n-1)*n/2+n; ans2=(n-2)*(n-1)/2*n/3+(n-1)*n+n;}printf("%lld\n",ans1*ans2);}return 0;}
- CodeForces 630G-Challenge Pennants【组合数学】
- Codeforces 630G Challenge Pennants【组合数学】
- CodeForces 630 G. Challenge Pennants(组合数学)
- CodeForces - 630G Challenge Pennants (组合数学)
- codeforces 630G Challenge Pennants(组合数学)
- CodeForces 630 G. Challenge Pennants(组合数学)
- codeforces 630G Challenge Pennants
- CodeForces-630 G. Challenge Pennants【排列组合】
- CodeForces 630G:Challenge Pennants【排列组合】
- codefoces #630 G. Challenge Pennants
- CodeForces 630 H. Benches(组合数学)
- Codeforces Round #414 (Div1+Div2) G Replace All (组合数学)
- CodeForces 630 F. Selection of Personnel(组合数学)
- CodeForces 630 I. Parking Lot(组合数学)
- CodeForces - 630F Selection of Personnel (组合数学)
- CodeForces - 630H Benches (组合数学)
- CodeForces 630H- Benches【组合数学】
- CodeForces 630H- Benches【组合数学】
- CodeForces 628BNew Skateboard-数学水题
- 最小乘积
- ubuntu 15.10下cmake 的安装
- BestCoder Round #75
- 使用cout标准输出如何控制小数点后位数
- codeforces 630G Challenge Pennants(组合数学)
- Machine Learning - Neural Networks Representation Part I
- 高斯消元(poj1753)
- OPENCV图像处理基础(二)感兴趣区域ROI
- 关于诊断当前网络状态的小Demo
- fgets汉字问题
- urlretrieve() 函数http://www.nowamagic.net/academy/detail/1302861
- Android应用开发之BaseAdapter基类的写法
- pom.xml 依赖配置