zoukankan      html  css  js  c++  java
  • HDU 2187汶川地震

    一直WA的代码想不通为什么:

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    
    using namespace std;
    int a[1005];
    int b[1005];
    
    int main(){
       int k,i,T,m;
       float money,tmp,d,sum;
    
        cin>>T;
        while(T-- ){
                sum = 0;
                cin>>money;
                cin>>k;
                for(i=0;i<k;i++){
                    cin>>a[i]>>b[i];
    
                }
                while(1){
                     tmp = 100;
                     for(i=0;i<k;i++){
                            if(tmp>a[i]){
                        tmp = a[i];
                        m=i;
                        a[i]+=1005;}
    
                    }
                    d=money/tmp;
                    if(b[m]>=d)
                    {
                    sum+=d;
                    printf("%.2f
    ",sum);
                        break;
                    }
                    else
                        sum+=b[m];
                    money-=tmp*b[m];
    
               }
        }
    }
    

    后来换了一种思路终于AC的:

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    int a[1005];
    int main(){
        int i,j,T,k,m,n,d;
        float money,sum,tmp;
        cin>>T;
    
    
        while(T--){
        cin>>money;
        cin>>k;
            sum=0;
        for(d=0;d<1005;d++)//不能用memset()函数初始化0,第二次执行这个,不会初始化上次被赋值过的数组
    		a[d]=0;
        for(i=0;i<k;i++){
            cin>>n>>m;
                a[n]+=m;//用下面的循环把单价按照从小到大排列了,又把数量存在了单价里
        }
    
    
                for(j=0;j<1005;j++){
                if(a[j]!=0){
                    if(money>0){
                            tmp=money/j;
                    if(tmp>a[j]){
                        sum+=a[j];
                        money-=j*a[j];}
                    else{
                       sum+=tmp;
                        printf("%.2f
    ",sum);
                        break;
                    }
    
                    }
        else{
            printf("%.2f
    ",sum);
            cout<<endl;
            break;
            }
                }
                }
        }
        }
    
    



  • 相关阅读:
    spring in action小结4.1
    spring in action小结3 运行时值注入
    python-__init__.py 与模块对象的关系
    Python-常用库扩展
    Qt-优化布局结构
    Python-文件修改器
    C语言-数据结构(一)
    Python-PyQt4学习笔记
    Python-PyQt4学习资料汇总
    Linux-查看C语言手册及man的特殊用法
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256476.html
Copyright © 2011-2022 走看看