ACM编程比赛入门题目集(9)

2019-08-26 17:53

有趣的排列

Time Limit:1000MS Memory Limit:65536K Total Submit:27 Accepted:19

【问题描述】

大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。

任务描述: 给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3?n。

比如:n = 3,k=2 给出排列2 3 1,则它的下1个排列为3 1 2,下2个排列为3 2 1,因此答案为3 2 1。

【要求】

【数据输入】第一行是一个正整数m,表示测试数据的个数,下面是m组测试数据,每组测试数据第一行是2个正整数n( 1 <= n < 1024 )和k(1<=k<=64),第二行有n个正整数,是1,2 ? n的一个排列。

【数据输出】对于每组输入数据,输出一行,n个数,中间用空格隔开,表示输入排列的下k个排列。

【样例输入】 3 3 1 2 3 1 3 1

3 2 1 10 2

1 2 3 4 5 6 7 8 9 10

【样例输出】 3 1 2 1 2 3

1 2 3 4 5 6 7 9 8 10

三角形面积

Time Limit:1000MS Memory Limit:65536K Total Submit:1195 Accepted:350

【问题描述】

给出三角形的三个边长为a,b,c,根据海伦公式来计算三角形的面积: s = (a+b+c)/2;

area = sqrt(s*(s-a)*(s-b)*(s-c));

【要求】

【数据输入】测试的数据有任意多组,每一组为一行。

每一行为三角形的三个边长为a,b,c;

【数据输出】输出每一个三角形的面积,两位小数。如果不是一个三角形,则输出错误提示信息:“Input error!”

【样例输入】 3 4 5 6 8 10 1 2 3

【样例输出】 6.00 24.00 Input error!

吃豆豆

timelimit:5 seconds memlimit:32768 K Prev |Next

【问题描述】

两个PACMAN 吃豆豆。一开始的时候,PACMAN 都在坐标原点的左下方,豆豆都在右上方。PACMAN 走到豆豆处就会吃掉它。PACMAN 行走的路线很奇怪,只能向右走或者向上走,他们行走的路线不可以相交。请你帮这两个PACMAN 计算一下,他们俩加起来最多能吃掉多少豆豆。

【要求】

【数据输入】输入包括多组数据每组输入数据第一行为N(1≤ N ≤2000),表示豆豆的数目。接下来N行,每行一对正整数Xi、Yi(不超过10^8),表示第i个豆豆的坐标。任意两个豆豆的坐标都不会重合。

【数据输入】两个PACMAN 加起啻最多能吃掉的豆豆数量。 每组输出后跟一个空行

【样例输入】 8 8 1 1 5 5 7 2 2 7 8 4 6 3 3 6 4

【样例输出】 7

序列

timelimit:30 seconds memlimit:32768 K Prev |Next

【问题描述】

一个序列{Ai, i=0,1,2,?,3N}由3N+1 项组成,每一项要么为1,要么为-2。

定义部分和SK=A0+A1+?+AK,求所有满足性质P的序列的数目。性质P为:S3N=1 且对于所有的K=0,1,2,?,3N-1,3N,有SK>0(即所有项的和为1,且所有部分和为正)。 例如N=2 的时候,共有3 组这样的序列: 1, 1, 1, -2, 1, 1, -2 1, 1, 1, 1, -2, 1, -2 1, 1, 1, 1, 1, -2, -2

【要求】

【数据输入】第一行输入N(N≤1000)。

【数据输出】满足P 性质的序列数目

【样例输入】 2

【样例输出】 3

宠物

timelimit:1 seconds memlimit:32768 K Prev |Next

【问题描述】fzk非常喜欢养宠物,比如他现在就养了2头奶牛,3只小熊,4个猩猩,5头大象,还有一个daizi。fzk 把他的宠物关在一些笼子里,例如,fzk当前的分配是: 笼子1: 奶牛,daizi ;笼子2: 奶牛;笼子3: 猩猩,大象;笼子4: 小熊,猩猩这样总共需要4个笼子。为了节省资金,fzk想用尽可能少的笼子来装下所有宠物。他的办法是在当前的分配下,合并一些笼子。假设每个笼子都足够大,可以装下任意多的宠物,而两个笼子如果装有相同的一种或多种宠物,就可以合并。现在给出fzk当前的分配,你能否帮助fzk算出按照他的方法合并后,总共只需要几个笼子? 比如对于上面的分配,可以合并为: 笼子1:奶牛,daizi ;笼子2:猩猩,小熊,大象总共需要2个笼子。

【要求】

【数据输入】首先一个整数t表示测试数据组数(1=0),表示当前分配下总共的笼子数。在接下来的k行中,每行描述一个笼子中关的宠物。其中第i行的结构是:Ni name1 name2 name3 ? nameNi。其中Ni(Ni>0)是该笼子中的宠物的种类数,name1,?,nameNi是这些宠物的 种类名称(他们互不相同)。所有的name都是由小写字母组成的字符串,长度不超过10位;所有的Ni之和不超过10000,不同的宠物种类数不超过1000。

【数据输出】对每组测试数据,输出一个整数,表示笼子合并之后fzk可以使用的最少的笼子数。

【样例输入】 1 4

2 nainiu daizi 1 nainiu

2 xingxing daxiang 2 xiaoxiong xingxing

【样例输出】 2


ACM编程比赛入门题目集(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江省嘉兴一中2011-2012学年上学期高二年级10月月考物理试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: