zoukankan      html  css  js  c++  java
  • PAT 1020 月饼 测试点3错误

    简单的贪心法,代码如下

     1 #include <iostream>
     2 #include<stdio.h>
     3 double amount[1000];
     4 double price[1000];
     5 using namespace std;
     6 int getMax(int n){
     7     int result=0;
     8     for(int i=0;i<n;i++){
     9         if(price[i]>price[result]) result=i;
    10     }
    11     return result;
    12 }
    13 int main()
    14 {
    15     int n;
    16     double max_require;
    17     cin>>n;
    18     cin>>max_require;
    19     for(int i=0;i<n;i++){
    20         cin>>amount[i];
    21     }
    22     for(int i=0;i<n;i++){
    23         cin>>price[i];
    24     }
    25     for(int i=0;i<n;i++){
    26         price[i]=price[i]/amount[i];
    27     }
    28     int sell;
    29     double sold_amount=0;
    30     double in_come;
    31     while(true){
    32        sell=getMax(n);
    33        if(price[sell]==-1) break;
    34        if((amount[sell]+sold_amount)<max_require){
    35             sold_amount+=amount[sell];
    36             in_come+=price[sell]*amount[sell];
    37             price[sell]=-1;
    38        }
    39        else{
    40             in_come+=price[sell]*(max_require-sold_amount);
    41             break;
    42        }
    43     }
    44     printf("%.2f",in_come);
    45 }

    测试点3错误的原因是:没有考虑所有库存相加都无法满足市场需求的情况,加上代码中第33行测试通过,该行代码表示所有月饼都卖出了(所有price都是-1了,因此最大值自然是-1),仍然不能不能满足市场需求,退出循环

  • 相关阅读:
    windows下jmeter安装配置
    golang读取json配置文件
    磁盘分区、扇区等概念理解
    linux 命令笔记
    jvm静态分派和动态分派
    java实例初始化顺序
    计算机网络
    文件对比工具Meld
    IaaS、PaaS、SaaS
    USB 驱动常见名词解释
  • 原文地址:https://www.cnblogs.com/za-chen/p/13235358.html
Copyright © 2011-2022 走看看