免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1409 | 回复: 1
打印 上一主题 下一主题

[C] 新手求指导,帮忙看看我代码错哪了。。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-24 17:21 |只看该作者 |倒序浏览
比基堡海滩有一个有n个触手的恐怖水母,蟹老板希望雇佣一些海绵宝宝把它杀死(即
砍掉所有触手)。现在有m个海绵宝宝可以雇佣,一个能力值为x的海绵宝宝可以砍掉恐怖水母一只直径不超过x的触手,且需要支付x个金币。如何雇佣海绵宝宝
才能杀死水母,并且支付的金币最少?需要注意一个海绵宝宝只能砍掉一只触手,并且不能被雇佣两次。

Input

第1行为正整数n和m,第2行为水母n只触手的直径,第3行为m个海绵宝宝的能力值,所有数据用空格间隔。

Output

输出最少金币数。如果无解,输出NULL
#include<stdio.h>
void BS(int A[],int n)
{
        int i,j,t;
        for (i=0;i<n-1;i++)
        {

                for(j=0;j<n-j-1;j++)
                {
                        if(A[j]<A[j+1])
                                t=A[j],A[j]=A[j+1],A[j+1]=t;
                }
        }
}
int main()
{
        int SM[100],BB[100],Q[100],n,m,i,j,w;
        scanf("%d%d",&n,&m);
        for(i=0;i<n;i++)
                scanf("%d",&SM[i]);
        for(i=0;i<m;i++)
                scanf("%d",&BB[i]);
        BS(SM,n);
        BS(BB,m);
        if(SM[0]>BB[0])
        {
        printf("NULL\n");
        w=0;
        }
        int k=0;
        for (i=0;w!=0&&i<n;i++)
                {
                for(j=k;j<m;j++)
                        if(SM[i]<=BB[j])
                        Q[i]=BB[j],
                        k=j+i;
                        break;
                }
                int sum=0;
                for(i=0;i<n;i++)
                        sum+=Q[i];               
                        printf("%d",sum);
        }
        return 0;

}

论坛徽章:
0
2 [报告]
发表于 2015-11-24 17:22 |只看该作者
不能及时回复
留下邮箱
huangkai@mail.nwpu.edu.cn
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP