acm编程比赛入门题目集

2026/4/29 18:33:34

【样例输出】 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

多边形

timelimit:1 seconds memlimit:32768 K Prev |Next

【问题描述】

在一个坐标平面上,给一个n个点的集合,能不能画出一个简单多边形(除相邻边外其他任意两条边没有公共点)。要求这个多边形的顶点集合就是给定的点集,而且多边形的边必须与x轴或y轴平行.更进一步,要求多边形相邻的边不平行,也就是说,多边形的边是一条横线段,接着一条竖线段,再接着一条横线段....

【要求】

【数据输入】输入包括多组数据.

输入数据的第一行包括一个整数t,表示有t组输入数据,t<10. 每组输入数据的第一行为一个整数n,(4 ≤ n ≤ 100000)

接下来的n行每行描述一个点的坐标,包括两个整数x y,( |x|,|y| ≤ 1000 )

【数据输出】

每个输入数据输出一行

如果可以画出要求的多边形,输出多边形的周长.如果存在多个这样的多边形,输出周长最小的。

如果不存在这样的多边形,输出-1

【样例输入】 1 8 1 2 1 0 2 1 2 2 3 2 3 1 4 0 4 2

【样例输出】 12

H数

timelimit:1 seconds memlimit:32768 K Prev |Next

【问题描述】

让我们来做做David Hilbert的一个练习题.

定义H数为4的正整数倍加1,比如: 1, 5, 9, 13, 17, 21, 25... 都是H数.可以证明两个H数相乘结果还是H数.类似于整数,我们也可以把H数分为1, H素数和H合数.一个H数为H素数,当且仅当,它除了1和自己之外,没有其他的H数整除它.除了1和H素数外,其他的H数都是H合数.比如9是H素数,因为除了1和9之外没有其他的H数整除9; 17和21也是H素数; 45是H合数,45=5×9,25也是H合数,因为 25=5×5.

你的任务是计算H半素数的个数. 一个H数是H半素数,当且仅当,它能分解成两个H素数的乘积.

这两个H素数可以是同一个数.比如25是H半素数,25=5×5。45也是H半素数, 45 = 5×9,而125不是H半

素数,125 = 5 × 5 × 5,它可以分解成3个H素数的乘积. 给你一个H数n,要求你输出有多少个不大于n的H半素数.

【要求】

【数据输入】输入包括多组数据,每组数据输出一行,包括一个整数n,(n ≤ 1,000,001 ) 最后一行为一个0,表示输入结束.

【数据输出】每个输入数据输出一行,先输出n,然后输出小于等于n的H数中有几个是H半素数,这两个数用一个空格隔开

【样例输入】 21 85 789 0

【样例输出】 21 0 85 5 789 62

数列找数

Time Limit:1000MS Memory Limit:65536K Total Submit:635 Accepted:263

【问题描述】

在一个数组A(N)各下标变量中存储N个互不相等的数,键盘输入正整数M(M≤N),要求打印出数组中第M大的下标变量的值。 例如:数组A(10)的数据为:

A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10) 16, 57, 20, 19, 38, 41, 6, 13, 25, 32

M=3时的运行结果为: A(5)=38 (即第3大的数是A(5)=38)

【要求】

【数据输入】第一行为测试的数据的组数k,说明共有K组数据,每一组有两行。每组中第一行为N,M,第二行为N个下标变量的值。

【数据输出】输出每一组数据中符合要求的下标值和下标变量值。

【样例输入】 2 5 1

6 8 3 4 5 3 2 1 2 3

【样例输出】 A(2)=8 A(2)=2

放苹果

Time Limit:1000MS Memory Limit:65536K Total Submit:136 Accepted:94

【问题描述】

把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。

【要求】

【数据输入】第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。


acm编程比赛入门题目集.doc 将本文的Word文档下载到电脑
搜索更多关于: acm编程比赛入门题目集 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

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