hdu2068 RPG的错排(错排公式简单应用)
来源:互联网 发布:世界上第一个人工智能 编辑:程序博客网 时间:2024/09/21 08:18
RPG的错排
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11550 Accepted Submission(s): 4743
Problem Description
今年暑假杭电ACM集训队第一次组成女生队,其中有一队叫RPG,但做为集训队成员之一的野骆驼竟然不知道RPG三个人具体是谁谁。RPG给他机会让他猜猜,第一次猜:R是公主,P是草儿,G是月野兔;第二次猜:R是草儿,P是月野兔,G是公主;第三次猜:R是草儿,P是公主,G是月野兔;......可怜的野骆驼第六次终于把RPG分清楚了。由于RPG的带动,做ACM的女生越来越多,我们的野骆驼想都知道她们,可现在有N多人,他要猜的次数可就多了,为了不为难野骆驼,女生们只要求他答对一半或以上就算过关,请问有多少组答案能使他顺利过关。
Input
输入的数据里有多个case,每个case包括一个n,代表有几个女生,(n<=25), n = 0输入结束。
Sample Input
120
Sample Output
11
唉,自己都知道是错排公式,但就是不知道错哪,手贱点开discuss AC代码。。。然后就。。。GG
题意就是求1~n-ceil(n/2)的错排公式的和。但是不要忘了一点就是!!!选择哪几个进行错排,也就是C(i,n),这里自己制杖了还WA了半天。。。血崩了啊!!!(都想罚自己写10遍了...
#include<cstdio>#include<cstdlib>#include<iostream>#include<stack>#include<queue>#include<algorithm>#include<string>#include<cstring>#include<cmath>#include<vector>#include<map>#include<set>#define eps 1e-8#define zero(x) (((x>0?(x):-(x))-eps)#define mem(a,b) memset(a,b,sizeof(a))#define memmax(a) memset(a,0x3f,sizeof(a))#define pfn printf("\n")#define ll __int64#define ull unsigned long long#define sf(a) scanf("%d",&a)#define sf64(a) scanf("%I64d",&a)#define sf264(a,b) scanf("%I64d%I64d",&a,&b)#define sf364(a,b,c) scanf("%I64d%I64d%I64d",&a,&b,&c)#define sf2(a,b) scanf("%d%d",&a,&b)#define sf3(a,b,c) scanf("%d%d%d",&a,&b,&c)#define sf4(a,b,c,d) scanf("%d%d%d%d",&a,&b,&c,&d)#define sff(a) scanf("%f",&a)#define sfs(a) scanf("%s",a)#define sfs2(a,b) scanf("%s%s",a,b)#define sfs3(a,b,c) scanf("%s%s%s",a,b,c)#define sfd(a) scanf("%lf",&a)#define sfd2(a,b) scanf("%lf%lf",&a,&b)#define sfd3(a,b,c) scanf("%lf%lf%lf",&a,&b,&c)#define sfd4(a,b,c,d) scanf("%lf%lf%lf%lf",&a,&b,&c,&d)#define sfc(a) scanf("%c",&a)#define ull unsigned long long#define debug printf("***\n")const double PI = acos(-1.0);const double e = exp(1.0);const int INF = 0x7fffffff;;template<class T> T gcd(T a, T b) { return b ? gcd(b, a % b) : a; }template<class T> T lcm(T a, T b) { return a / gcd(a, b) * b; }template<class T> inline T Min(T a, T b) { return a < b ? a : b; }template<class T> inline T Max(T a, T b) { return a > b ? a : b; }bool cmpbig(int a, int b){ return a>b; }bool cmpsmall(int a, int b){ return a<b; }#define pp pair<int,int>using namespace std;int n;ll c(int i){ ll x=1; for(int kkk=n-i+1;kkk<=n;kkk++) x*=kkk; ll y=1; for(int kkk=1;kkk<=i;kkk++) y*=kkk; return x/y;}int main(){ // freopen("data.in","r",stdin); int i; ll dp[30]; mem(dp,0); dp[0]=1; dp[1]=0;dp[2]=1; for(i=3;i<=25;i++) dp[i]=(dp[i-1]+dp[i-2])*(i-1); int tot=1; while(~sf(n)&&n) { int pos=n-(int)ceil(n*1.0/2); ll sum=0; // printf("Case : %d %d %d %d\n",tot++,pos,n,(int)ceil(n*1.0/2)); for(i=0;i<=pos;i++) sum+=c(i)*dp[i]; printf("%I64d\n",sum); } return 0;}
0 0
- hdu2068 RPG的错排(错排公式简单应用)
- hdu2068 RPG的错排
- HDU2068 RPG的错排
- hdu2068 RPG的错排
- HDU2068 RPG的错排
- hdu2068 RPG的错排
- HDU2068 RPG的错排
- Hdu2068 RPG的错排
- hdu2068 RPG的错排(错排)
- HDU2068——RPG的错排
- HDU2068 RPG的错排 【组合+错排】
- 组合数学+递推式 hdu2068 RPG的错排
- hdoj--2068--RPG的错排(错排公式)
- hdu2068(不完全错排)
- hdu2068 错排+组合
- hdu2068错排+排列组合
- HDU 2068 RPG的错排(错排公式 + 详解)
- hdoj RPG的错排 2068 (数学&错排公式)
- 自勉
- SwipeRefreshLayout进入界面后自动显示刷新效果
- eclipse的安装以及jdk配置java环境
- 可展开的列表组件——ExpandableListView深入解析
- spark大数据分析(二)
- hdu2068 RPG的错排(错排公式简单应用)
- Java设计模式之——桥接模式
- 第一部分 TCP/IP基础知识
- hdu 5944 等比数列 fxx and string
- mybatis中association和collection的column传入多个参数值
- 【leetcode】111. Minimum Depth of Binary Tree
- c++模板函数
- |洛谷|并查集|P1525 关押罪犯
- POJ 3984---迷宫问题