暑假多校联盟(=) e题 书架

来源:互联网 发布:中国知网数据库查重 编辑:程序博客网 时间:2024/06/06 00:33

问题 E: YK的书架

时间限制: 1 秒  内存限制: 128 MB
提交: 596  解决: 138
提交 状态 

题目描述

    YK新买了2n+1本相同的书,准备放在家里的3层书架上(每一层放书的数量>=0且<=n)。不过YK摆放他的书有些特殊的要求,即任意两层摆放的书的数目之和,严格大于另一层的书的数目。现在YK想知道在满足他的要求的前提下有多少种不同的摆书方法。

输入

输入有多行,每行一个整数n(1<=n<1e9),其含义如题目描述中所述

输出

对于每行输入,输出一行答案。

样例输入

12

样例输出

13

提示


题解:
由题意可知,每层放的书的个数不能超过n个,否则无法满足题中的要求。我们假设一开始有3n本书,每层各n本。那么答案恰好为从这3n本书中拿走n-1本书的方案数,即


x_1+x_2+x_3=n-1   x_1,x_2,x_3 >= 0


的方案数,即求组合数C(n+1,2)

想了半天       借鉴一下这个例子


例四、将r个相同的小球放入n个不同的盒子,总共有多少种方案?

解答:该问题可以转化为r个相同的小球与n-1个相同的盒壁的排列问题

仔细理解     盒子可以为空     隔板放置的位置   可以是 末端  所以  是从  n-1 +2 中 选出 两个 隔板  所以 c (n+1,2)



#include<iostream>#include<queue>#include<cmath>#include<cstring>#include<cstdlib>using namespace std;long long fun(long long x){long long res=1;return x*(x+1)/2;}int main(){int n,t,m;while(~scanf("%d",&t)){ printf("%lld\n",fun(t));}return 0;}



原创粉丝点击