zoukankan      html  css  js  c++  java
  • poj3190 Stall Reservations(贪心+STL)

    https://vjudge.net/problem/POJ-3190

    cin和scanf差这么多么。。tle和300ms

    思路:先对结构体x升序y升序,再对优先队列重载<,按y升序。

      然后依次入队,如果node[i].x<=q.top().y ans++, 否则出队,入队,使用出队的那个摊位。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<queue>
     4 #include<cstring>
     5 #include<algorithm>
     6 #include<cmath>
     7 #include<set>
     8 #define INF 0x3f3f3f3f
     9 typedef long long ll;
    10 using namespace std;
    11 struct Node{
    12     int x, y;
    13     int id;
    14     bool operator<(const Node &a)const{
    15         return y > a.y;
    16     }
    17 }node[50010];
    18 int n, maxm = -INF, b[50010];
    19 bool cmp(const Node a, const Node b)
    20 {
    21     if(a.x != b.x)
    22         return a.x<b.x;
    23     return a.y<b.y;
    24 }
    25 int main()
    26 {
    27     scanf("%d", &n); 
    28     int ans = 1;
    29     for(int i = 0; i < n; i++){
    30         scanf("%d%d", &node[i].x, &node[i].y);
    31         node[i].id=i+1;
    32     }
    33     sort(node, node+n, cmp);
    34     priority_queue<Node> q;
    35     q.push(node[0]);
    36     b[node[0].id] = ans;
    37     for(int i = 1; i < n; i++){
    38         Node t = q.top();
    39         if(node[i].x <= t.y){
    40             q.push(node[i]);
    41             ans++;
    42             b[node[i].id] = ans;
    43             //maxm = max(maxm, ans);
    44         }
    45         else if(node[i].x > t.y){
    46             q.pop();
    47             q.push(node[i]);
    48             b[node[i].id] = b[t.id];
    49             //cout << b[t.id] << "t";
    50         }
    51     }
    52     printf("%d
    ", ans);
    53     for(int i = 1; i <= n; i++){
    54         printf("%d
    ", b[i]);
    55     }
    56     
    57     return 0;
    58 } 
  • 相关阅读:
    pymysql模块操作数据库及连接报错解决方法
    lvs负载均衡
    redis(nosql数据库)
    zabbix
    shell正则表达式
    红帽CentOS7 密码破解
    shell基础及变量符号
    xshell连接虚拟机
    散列表与哈希算法学习笔记
    LeetCode-300 最长上升子序列
  • 原文地址:https://www.cnblogs.com/Surprisezang/p/9000363.html
Copyright © 2011-2022 走看看