| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 980 人关注过本帖
标题:各位大佬,费心再来看看吧,上传结果又WA了。。。。。。
只看楼主 加入收藏
qiujiao
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2018-10-26
结帖率:0
收藏
 问题点数:0 回复次数:0 
各位大佬,费心再来看看吧,上传结果又WA了。。。。。。
问题描述
小鱼儿在一次探险途中发现了一个山洞,并且在这个山洞里找到了宝藏,可是小鱼儿发现想要把宝藏全部带走是不可能的(因为他只带了一个袋子),不过很快他就发现每个宝物旁边都有几个字,上面写着宝物的体积和价值,而且这些宝物可以分割成任意大小。小鱼儿想知道如何选取宝物,才能使带走宝物的价值最大。
输入
第一行有两个整数v和n,表示袋子的容量和宝物的数量。(0<n<=100,0<v<=10000)
接下来n行每行两个整数,分别表示宝物的体积和价值。
输出
在单独的一行中输出一个数,表示能够带走宝物的最大价值,结果保留两位小数。
输入样列
10 3
10 30
11 55
4 30
输出样例
60.00


#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
    int a[100],b[100];
    double c[100],d[100],sum=0;
    int i,j,w,n;
    scanf("%d %d",&w,&n);
    for(i=0;i<n;i++)
    {
        scanf("%d %d",&a[i],&b[i]);
        c[i]=b[i]/(a[i]*1.0);
        d[i]=c[i];
    }
    sort(d,d+n-1);
    for(i=n-1;i>=0;i--){
        for(j=0;j<n;j++){
            if(c[j]==d[i]&&w>0){
                if(w>=a[j])
                    sum+=b[j];
                else
                    sum+=c[j]*w;
                w=w-a[j];
            }
        }
    }
    printf("%.2lf\n",sum);
}
搜索更多相关主题的帖子: 结果 价值 表示 sum for 
2018-12-22 21:46
快速回复:各位大佬,费心再来看看吧,上传结果又WA了。。。。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018935 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved