• hdu 4393(优先队列)


    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4393

    思路:考虑Si最大只有100,所以我们可以建立优先队列数组s[1..100],对于每个优先队列,按第一关键字Fi第二关键字ID排序,每次取出所有的优先队列里最大值,然后直接 计算(Time-1)*Si + Fi 找最大的way,将对应的优先队列pop并输出对应ID即可。

    View Code
     1 #include<iostream>
     2 #include<queue>
     3 const int N=110;
     4 using namespace std;
     5 
     6 struct Point{
     7     int dis,id;
     8     bool operator < (const Point &p) const {
     9         if(dis!=p.dis)
    10             return dis<p.dis;
    11         return id>p.id;
    12     }    
    13 };
    14 priority_queue<Point>Q[N];
    15 
    16 int main(){
    17     int _case,t=1;
    18     scanf("%d",&_case);
    19     while(_case--){
    20         int n,f,s;
    21         scanf("%d",&n);
    22         for(int i=1;i<=n;i++){
    23             Point p;
    24             scanf("%d%d",&f,&s);
    25             p.dis=f;
    26             p.id=i;
    27             Q[s].push(p);
    28         }
    29         printf("Case #%d:\n",t++);
    30         for(int i=1;i<=n;i++){
    31             int max=-1,id=100000,ans;
    32             for(int j=1;j<=N;j++){
    33                 if(!Q[j].empty()){
    34                     Point p=Q[j].top();
    35                     if((i-1)*j+p.dis>max||(i-1)*j+p.dis==max&&p.id<id){
    36                         max=(i-1)*j+p.dis;
    37                         id=p.id;
    38                         ans=j;
    39                     }
    40                 }
    41             }
    42             int tmp=Q[ans].top().id;
    43             if(i==n){
    44                 printf("%d\n",tmp);
    45             }else 
    46                 printf("%d ",tmp);
    47             Q[ans].pop();
    48         }
    49     }
    50     return 0;
    51 }
  • 相关阅读:
    ECMAScript 2016(ES7) 知多少
    PyCharm连接远程服务器
    PyCharm远程开发和调试
    SecureCRT使用帮助
    NLP文本相似度
    程序控制结构--案例
    程序控制结构--选择结构
    程序控制结构--条件表达式
    Python序列结构--集合
    Python序列结构--字典
  • 原文地址:https://www.cnblogs.com/wally/p/2959386.html
Copyright © 2020-2023  润新知