"下沙野骆驼"ACM夏令营

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 833    Accepted Submission(s): 403

Problem Description
大家都知道,杭电计算机学院为了吸引很多其它的学生參与到程序设计竞赛中去,从2005年秋天,開始举行月赛。并一直坚持到了如今。

事实表明。这项措施的效果还是非常明显的。如今坚持參加训练的学生比曾经有了较大幅度的增长。总体水平也有了较大的提高。

为了更好的促进这项竞赛的发展。计算机学院又有了新的计划:准备在每年的暑假举行一个为期半个月的程序设计夏令营活动,活动的全称是“下沙野骆驼ACM夏令营”,准备邀请全球的编程高手共同训练,邀请对象当然少不了HFUT的DYGG,NIT的DGMM,ZJUT的QWDD,假设QH的LTC一定要来,我们也不会嫌弃,尽管他水平比其它人差了些。毕竟是杭州人,要给点面子的。再说,共同进步才是我们的终于目的,呵呵。

活动的安排初步定为7项内容,详细是:

1、第一天,倒时差(主要照应欧美的选手)。

2、第二天。參观杭电校园,并在參观结束举行有奖竞答。偷偷透露一下。题目我已经设计好了:“杭电校院一共同拥有几棵树?”(正确答案:3897棵)。答对的营员奖励雪糕一支(不是哈根达斯,是杭州五丰生产的,民族工业还是要支持的)。

3、第三天,參观杭电ACMer的寝室,主要目的是让部分来自资本主义国家的选手看看我们是怎样管理学生宿舍的,当中一项重要内容是向全球推广我校首创的“党员榜样寝室”。

4、第四天。练习赛。题目仅仅有一个:“非著名高校HD一共同拥有教职工num个,分布在X个部门,如果每一个部门有y1个正处级领导,y2个副处级领导,y3个付处级调研员,y4个正科级干部,y5个副科级干部,请输出HD的领导人员占教职工总数的比例,结果保留两位小数。”(告诉你,这个题目对于欧美选手来说有个陷阱,最后的结果可能大于100%!这是他们怎样也想不到的:)

5、第五天~第十三天,算法交流,主要讨论怎样求两个数的最小公倍数。

6、第十四天。自由组队(每队人数不限,呵呵。注意了),參加“下沙野骆驼杯”程序设计大赛,冠军将获得一匹下沙的野骆驼(我们主场不知道有没有机会...)

7、最后一天。篝火晚会,主题:“ACM,你究竟爱不爱我?!”。主持人:骆驼王子和他一个普通老同学。



负责这次夏令营活动的是05级的小师弟Linle(一个打字速度非常快,号称仅次于Fe(OH)2的小伙子),他非常聪明,也非常勤奋,如今他就在思考一个问题。假设一共来了n个同学,依照组队规则,一共会有多少种不同的组队方案呢?

 
Input
输入数据的第一行是一个整数C(1<C<25)。表示測试实例的数目。然后是C行数据,每行一个整数n(0<n<25),表示营员的人数。

 
Output
对于每组输入数据,请输出组队的方案数目。每一个測试实例占一行。
 
Sample Input
3
1
2
3
 
Sample Output
1
2
5
 

题意:求n个人组队的全部不同方式,如3个人a,b,c,能够组成:{a,b,c},{ab,c},{ac,b},{bc,a},{abc}5种方式。

解题思路:易知2个人能够组成{a,b}{ab}2种方式;

1、添加的一人单独一队,则原来的方法数目不变,队伍数目都+1,dp[i][j]=dp[i-1][j-1];

2、保持队伍数目不变。把这个人c添加到每种组队方式的任一队伍中,则队伍变成了{ac,b},{a,bc},{abc},添加3种,dp[i][j]=dp[i-1][j]*j;

则能够用dp[i][j]表示 i个人分成j组队的方案数,dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j;

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
#include<vector>
using namespace std;
#define LL __int64
#define N 26
const int inf=0x1f1f1f1f;
LL dp[N][N];
LL f[N];
void inti()
{
int i,j;
memset(dp,0,sizeof(dp));
memset(f,0,sizeof(f));
dp[1][1]=f[1]=1;
for(i=2;i<N;i++)
{
for(j=1;j<=i;j++)
{
dp[i][j]=dp[i-1][j-1]+dp[i-1][j]*j;
f[i]+=dp[i][j];
}
}
}
int main()
{
int c,n,i,j;
inti();
scanf("%d",&c);
while(c--)
{
scanf("%d",&n);
printf("%I64d\n",f[n]);
}
return 0;
}

hdu 1292 &quot;下沙野骆驼&quot;ACM夏令营 (递推)的更多相关文章

  1. HDU 1207 汉诺塔II (找规律,递推)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1207 汉诺塔II Time Limit: 2000/1000 MS (Java/Others)     ...

  2. HDU 5446——Unknown Treasure——————【CRT+lucas+exgcd+快速乘+递推求逆元】

    Each test case starts with three integers n,m,k(1≤m≤n≤1018,1≤k≤10) on a line where k is the number o ...

  3. HDU 2049 不容易系列之(4)——考新郎 (递推,含Cmn公式)

    不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  4. 致初学者(四):HDU 2044~2050 递推专项习题解

    所谓递推,是指从已知的初始条件出发,依据某种递推关系,逐次推出所要求的各中间结果及最后结果.其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简后确定.关于递推的知识可以参阅本博客中随笔“递推 ...

  5. hdu 1267 下沙的沙子有几粒? (递推)

    下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  6. HDU——1267 下沙的沙子有几粒?

    下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  7. hdu1527下沙小面的(二)

    B - 下沙小面的(2) Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  8. C - 下沙小面的(2)

    C – 下沙小面的(2)Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit StatusDes ...

  9. System.Web.HttpRequestValidationException: 从客户端(dbFlag=&quot;&lt;soap:Envelope xmlns...&quot;)中检测到有潜在危险的 Request.Form 值。

    System.Web.HttpRequestValidationException: 从客户端(dbFlag="<soap:Envelope xmlns...")中检测到有潜 ...

随机推荐

  1. 洛谷 P3817 小A的糖果

    P3817 小A的糖果 题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖 ...

  2. bitmap2drawable-两者的转化实现

    先来看今天遇到的一个问题,是关于mms报错的.后来发现报的地方如下 Bitmap deleteBitMap = ((BitmapDrawable)mChipDelete).getBitmap(); D ...

  3. php数组函数(分类基本数组函数,栈函数,队列)

    php数组函数(分类基本数组函数,栈函数,队列函数) 一.总结 1.常用数组函数 函数 描述 array() 创建数组. array_combine() 通过合并两个数组来创建一个新数组. array ...

  4. Docker---(6)问题:bash: vi: command not found

    原文:Docker---(6)问题:bash: vi: command not found 版权声明:欢迎转载,请标明出处,如有问题,欢迎指正!谢谢!微信:w1186355422 https://bl ...

  5. Emgucv 图像操作笔记

    这里记下一些学习过程中的心得和技巧.我用VS2008,C#的平台进行编写. 1.将图片载入PictureBox的方法: Image<Bgr, byte> img = new Image&l ...

  6. Python Tricks(二十)—— 阶乘的极简实现

    使用 reduce # 比如计算 9 的阶乘 >> reduce(lambda x, y: x*y, range(1, 9+1)) 362880 当然这里的 reduce 直接返回具体的数 ...

  7. 编程——C语言的问题,堆栈

    堆和栈的区别一.预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结 ...

  8. Ruby(面向对象程序设计的脚本语言)入门

    Ruby是一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言. 简单介绍 Ruby 是开源的,在Web上免费提供,但须要一个许可证. Ruby 是一种通用的.解释的编程语言. Ruby 是 ...

  9. UVA 10943 - How do you add? 递推

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  10. LA 2191 - Potentiometers

    看题传送门 Fenwick树的应用~~~ #include <cstdio> #include <cstring> #include<algorithm> usin ...