ONE_Sensei 2021-11-08 20:43 采纳率: 0%
浏览 73
已结题

此题我在vj提交一直runtime error,请求指导

#include<algorithm>
#include<cstdio>
using namespace std;

int main(){
    int m,n;
    while(cin>>m>>n){
        int j[1100]={0},f[1100]={0};
        double sum=0;
        if(m!=-1 || n!=-1){
            for(int i = 0;i < n; i++){
                cin>>j[i]>>f[i];  
            }
            //对效率进行排序
            for(int i = 0;i <= n; i++){
                for(int k = i+1;k <= n-1; k++){
                    if(1.0*j[k]/f[k]>1.0*j[i]/f[i])
                    {
                        j[k]+=j[i];
                        j[i]=j[k]-j[i];
                        j[k]-=j[i];
                        f[k]+=f[i];
                        f[i]=f[k]-f[i];
                        f[k]-=f[i];    
                    }
                }
            }
            int i=0;
            while(m>f[i]){
                m-=f[i];
                sum+=j[i];
                i++;
            }
            sum+=1.0*m/f[i]*j[i];
            printf("%.3lf\n",sum);
        } else break;
    }
    return 0;
}

胖鼠准备了M磅猫粮,准备和看守仓库的猫交易,仓库里有他最喜欢的食物——爪哇豆。

这个仓库有N个房间。第i个房间里有J[i]磅的爪哇豆,需要F[i]磅的猫粮。胖鼠不必用房间里所有的爪哇豆来交换,相反,如果他支付F[i]*a%磅的猫粮,他可能会得到J[i]*a%磅的爪哇豆。这是一个实数。现在他给你布置了一个家庭作业:告诉他可以获得的JavaBeans的最大数量。

输入

输入由多个测试用例组成。每个测试用例从一行开始,该行包含两个非负整数M和N。然后是N行,每个行分别包含两个非负整数J[i]和F[i]。最后一个测试用例后面是两个-1。所有整数都不大于1000。

输出

对于每个测试用例,在一行中打印一个精确到小数点后3位的实数,这是FatMouse可以获得的最大JavaBeans数量。

Sample Input
  5  3
  7  2
  4  3
  5  2
  20  3
  25  18
  24  15
  15  10
  -1  -1
Sample Output
  13.333
  31.500
  • 写回答

1条回答 默认 最新

  • orange4reg 2021-11-08 23:27
    关注

    不懂你这个算法,但是感觉这里while(m>f[i])不太对。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月16日
  • 创建了问题 11月8日

悬赏问题

  • ¥15 ul做导航栏格式不对怎么改?
  • ¥20 用户端如何上传图片到服务器和数据库里
  • ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
  • ¥30 vivado封装时总是显示缺少一个dcp文件
  • ¥100 pxe uefi启动 tinycore
  • ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
  • ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
  • ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
  • ¥15 疾病的获得与年龄是否有关
  • ¥15 opencv.js内存,CPU飙升