HDU 5366-The mook jong(组合数学)
来源:互联网 发布:软件脱壳 编辑:程序博客网 时间:2024/04/30 10:09
题目地址:HDU 5366
题意:
问题描述
ZJiaQ为了强身健体,决定通过木人桩练习武术。ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里。由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两个,现在ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法。
输入描述
输入有多组数据,每组数据第一行为一个整数n(1 < = n < = 60)
输出描述
对于每组数据输出一行表示摆放方案数
输入样例
1
2
3
4
5
6
输出样例
1
2
3
5
8
12
思路:首先我们可以确定的是,因为每两个木人桩之间的地砖必须大于等于2个,所以木人桩的个数k需满足k+2*(k-1)<=n,即k<=(n+2)/3。然后我们来找砖数和木人桩之间的关系。
Eg:n=7,k=2时,因为2个木人桩之间的地砖数至少需要2个,那么我只需要先取出这2块地砖,那么就相当于剩下的5个地砖上放2个木人桩,即C(5,2)=10,然后再将取出的地砖放回去就是所求解,所以对应的木人桩数k,我们只需要加上C(n-2*(k-1),k)即可。
#include <stdio.h>#include <math.h>#include <string.h>#include <stdlib.h>#include <iostream>#include <sstream>#include <algorithm>#include <set>#include <queue>#include <stack>#include <map>#pragma comment(linker, "/STACK:102400000,102400000")using namespace std;typedef __int64 LL;const int inf=0x3f3f3f3f;const double pi= acos(-1.0);const double esp=1e-6;const int maxn=70;LL c[maxn][maxn];LL C(){ int i,j; for(i=0;i<maxn;i++){ c[i][0]=1; c[i][i]=1; } for(i=1;i<maxn;i++) for(j=1;j<maxn;j++) c[i][j]=c[i-1][j]+c[i-1][j-1];}int main(){ int n; C(); while(~scanf("%d",&n)){ int cnt=(n+2)/3; LL sum=0; for(int i=1;i<=cnt;i++){ sum+=c[n-2*(i-1)][i]; } printf("%I64d\n",sum); } return 0;}
1 0
- HDU 5366-The mook jong(组合数学)
- hdu 5366 The mook jong
- hdu 5366 The mook jong
- HDU 5366 The mook jong
- hdu 5366 The mook jong
- HDU 5366 The mook jong
- HDU-5366-The mook jong
- HDU 5366 The mook jong
- The mook jong (HDU 5366)
- hdu 5366 The mook jong
- HDU 5366 The mook jong
- HDU 5366 The mook jong(DP)
- hdu 5366 The mook jong dp
- HDU 5366:The mook jong 递推
- HDU 5366 The mook jong(递推)
- hdu 5366 The mook jong 动态规划
- hdu 5366 The mook jong(dp)
- hdu 5366 The mook jong 【dp】
- 音量图标不显示了怎么恢复
- 架构师要以自己的编程能为依托
- HDU 1198 Farm Irrigation(DFS)
- 二叉搜索树的基本操作(查找、插入、删除)【数据结构】
- java中classpath的详解
- HDU 5366-The mook jong(组合数学)
- 如何使用qq截图
- hdu5358 First One
- Java io文件操作(按字符、字节、行、随机读取,追加,文件操作)
- centos6.5 32位搭建hadoop2.2.0 集群
- UVA 152 Tree's a Crowd
- php框架laravel学习 二 (数据库建立迁移与建模)
- java synchronized静态同步方法与非静态同步方法,同步语句块
- 通过SQLServer的数据库邮件来发送邮件