• uva 1203 Argus


    /*
    uva  1203 - Argus
    题意:统计每次出队列的序号————实际就是一个优先队列优先级为:
    当时间小的优先级高或者时间相同,序号小的优先级高(见重载<)
    因为时间前进时间累加 在结构体里设三个变量num\time\sum
    核心:弄清优先级到底是什么。
    开始我当成“横坐标排序 再纵坐标排序”的思想 wa  了改又wa 英语还得继续学习呀!!!
    *///AC

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 #include<queue>
     5 using namespace std;
     6 const int M=10010;//防止runtime error
     7 int s[M][M];
     8 struct Node
     9 {
    10     int num;// 序号
    11     int time; //单位时间
    12     int  sum;//每次在单元时间基础上的累加
    13    Node(int x , int y,int z):num(x),time(y),sum(z){}
    14    bool operator <(const Node &e)const//重载<
    15    {
    16        // if(time==e.time)return num>e.num;
    17        // return sum>e.sum;
    18         return (sum>e.sum || (sum==e.sum && num>e.num));
    19         //返回时间少的或者当时间相同时返回序号小的
    20    }
    21 };
    22 priority_queue <Node> q;
    23 /////
    24 void  f(int n)
    25 {
    26     int a ,b,c;
    27     while(n--)//循环优先队列
    28     {
    29         Node node =q.top();//去优先级最高的变量
    30         q.pop();//该高的优先级元素出队列
    31         printf("%d\n",node.num);//输出
    32         node.sum+=node.time;//时间累加
    33         q.push(Node(node.num,node.time,node.sum));//循环入队列
    34     }
    35 }
    36 int main()
    37 {
    38     int i,n;
    39     char a[10];
    40     i=0;
    41     while(scanf("%s",&a)!=EOF)
    42     {
    43         if(a[0]=='#')break;
    44         scanf("%d%d",&s[i][0],&s[i][1]);
    45         q.push(Node(s[i][0],s[i][1],s[i][1]));//元素入队列
    46         i++;
    47     }
    48     scanf("%d",&n);
    49     f(n);
    50     return 0;
    51 }
    52 /*
    53 1  4 56
    54 1  5  4
    55 1  4  56
    56 1   5  5
    57 1  6  3
    58 1  7  56
    59 1  4  20
    60 #
    61 10
    62 */
  • 相关阅读:
    FastApi 进阶
    flask为多个接口添加同一个拦截器的方法
    记一次flask上传文件返回200前端却504的问题
    Python在项目外更改项目内引用
    go mod 拉取私有仓库
    go跳出多层循环的几种方式
    Zap简单使用
    记一次Goroutine与wg导致的问题
    go判断字符串是否是IP地址
    SpringBoot的启动流程
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/2918797.html
Copyright © 2020-2023  润新知