34 北理工的恶龙
成绩: 10 / 折扣: 0.8
背景:
最近,北理工出现了一只恶龙,它长着很多头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。校长想花 最少的学分数杀死恶龙,于是到你寻求帮助。
456什么意思网络流行语输入:
第一行 龙头数 n , 勇士人数 m ( 1<=n, m<=100 ) 接下来 n 行,每行包含一个整数,表示龙头的直径 接下来 m 行,每行包含一个整数,表示勇士的身高 l
输出:
如果勇士们能完成任务,输出校长需要花的最小费用;否则输 出 “ bit is doomed! ”
测试输入
期待的输出
时间限制
存限制
额外进程
测试用例 1
以文本方式显示
1.2 3↵
2.5↵
3.4↵
4.7↵
5.8↵
6.4↵
以文本方式显示
1.11↵
1秒
64M
0
测试用例 2
以文本方式显示
1.2 1↵
2.5↵
3.5↵
4.10↵
以文本方式显示
1.bit is doomed!↵
1秒
64M
0
#include<stdio.h>
void main()
{
int s=0,t,i,j,m,n,a[100],b[100],c[100];
for(i=0;i<=99;i++)
a[i]=0,b[i]=0,c[i]=0;
scanf("%d%d",&m,&n);
for(i=0;i<=m-1;i++)
scanf("%d",&a[i]);
for(i=0;i<=n-1;i++)
scanf("%d",&b[i]);
if(m>n)
printf("bit is doomed!\n");
else
{
for(i=0;i<=m-1;i++)
for(j=i;j<=m-1;j++)
{if(a[i]>a[j])
{t=a[i],a[i]=a[j],a[j]=t;}}
for(i=0;i<=n-1;i++)
for(j=i;j<=n-1;j++)
{if(b[i]>b[j])
{t=b[i],b[i]=b[j],b[j]=t;}}
t=0;
for(i=0;i<=m-1;i++)
for(j=0;j<=n-1;j++)
if(a[i]<=b[j])
{c[t]=b[j];
t++;
b[j]=0;
break;}
if(t<m)
printf("bit is doomed!\n");
else
{for(i=0;i<=t;i++)
s=s+c[i];
printf("%d\n",s);}
}
}
35 杀鸡用牛刀——要用递归啊!
成绩: 5 / 折扣: 0.8
背景:
哈哈!我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。
功能:
求整数 n 到 m 区间的累加和,其中n<=m。
输入:
区间的起始点n 区间的终止点m
输出:
累加和
要求:
使用递归算法完成。如此简单的题目当然要有隐含的测试用例啦,就3个,看看谁能猜出来。
测试输入
期待的输出
时间限制
存限制
额外进程
测试用例 1
以文本方式显示
1.1 10↵
以文本方式显示
1.The sum from 1 to 10 is 55.↵
1秒
64M
0
测试用例 2
以文本方式显示
1.10 15↵
以文本方式显示
1.The sum from 10 to 15 is 75.↵
1秒
64M
0
#include<stdio.h>
int sum(int m,int n)
{
    int i;
    if(n==m)
        i=n;
    else
        i=n+sum(m,n-1);
    return(i);
}
void main()
{
    int m,n;
    scanf("%d%d",&m,&n);
    printf("The sum from %d to %d is %d.\n",m,n,sum(m,n));