有趣的排列
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=
【数据输出】对每组测试数据,输出一个整数,表示笼子合并之后fzk可以使用的最少的笼子数。
【样例输入】 1 4
2 nainiu daizi 1 nainiu
2 xingxing daxiang 2 xiaoxiong xingxing
【样例输出】 2