程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> UVA10026

UVA10026

編輯:C++入門知識

使用貪心按照性價比排序即可,唯一需要注意的就是它的輸出格式。

The outputs of two consecutive cases will be separated by a blank line.

 

#include<iostream>   
#include<algorithm>   
using namespace std;  
  
struct Node{  
    int index;    //每雙鞋子的索引   
    double time;  
    double fine;  
    double cost;   //性價比   
};  
Node test[1001];  
bool cmp(const Node& node1,const Node& node2);  
int main()  
{  
    int  testNumber;  
    cin>>testNumber;  
    for(int i=1;i<=testNumber;i++)  //測試的數目   
    {  
        int shoseNumber;  
        cin>>shoseNumber;  
        for(int j=0;j<shoseNumber;j++)   //獲取輸入   
        {  
  
            cin>>test[j].time;  
            cin>>test[j].fine;  
            test[j].index=j+1;   //計算性價比   
            test[j].cost=test[j].fine/test[j].time;  
        }  
        sort(test,test+shoseNumber,cmp);  
        for(int h=0;h<shoseNumber-1;h++)  
            cout<<test[h].index<<" ";  
        cout<<test[shoseNumber-1].index<<endl;  
        if(i!=testNumber)  
            cout<<endl;  
    }  
    return 0;  
}  
  
bool cmp(const Node& node1,const Node& node2)  
{  
    if(node1.cost!=node2.cost)  
        return node1.cost>node2.cost;  
    else  
        return node1.cost<node2.cost;  
}  

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

struct Node{
    int index;    //每雙鞋子的索引
    double time;
    double fine;
    double cost;   //性價比
};
Node test[1001];
bool cmp(const Node& node1,const Node& node2);
int main()
{
    int  testNumber;
    cin>>testNumber;
    for(int i=1;i<=testNumber;i++)  //測試的數目
    {
        int shoseNumber;
        cin>>shoseNumber;
        for(int j=0;j<shoseNumber;j++)   //獲取輸入
        {

            cin>>test[j].time;
            cin>>test[j].fine;
            test[j].index=j+1;   //計算性價比
            test[j].cost=test[j].fine/test[j].time;
        }
        sort(test,test+shoseNumber,cmp);
        for(int h=0;h<shoseNumber-1;h++)
            cout<<test[h].index<<" ";
        cout<<test[shoseNumber-1].index<<endl;
        if(i!=testNumber)
            cout<<endl;
    }
    return 0;
}

bool cmp(const Node& node1,const Node& node2)
{
    if(node1.cost!=node2.cost)
        return node1.cost>node2.cost;
    else
        return node1.cost<node2.cost;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved