zoukankan      html  css  js  c++  java
  • URAL 1203. Scientific Conference(瞎搞)

    题目链接

    本来觉得这不是经典的贪心吗。。果断水一次,wa了,看了看discuss,发现貌似不好水,土土的DP了一下,复杂度很高了,又T了。。。然后想想单调队列,二分什么的。。。不好往上加,直接搞了标记数组flag,暴力从大到小,遍历寻找,然后就过了。。。这算是优化吗,瞎搞。。。

     1 #include <cstring>
     2 #include <cstdio>
     3 #include <string>
     4 #include <iostream>
     5 #include <algorithm>
     6 #include <cmath>
     7 using namespace std;
     8 struct node
     9 {
    10     int x,y;
    11 }p[100001];
    12 int dp[100001];
    13 int flag[100001];
    14 int cmp(node a,node b)
    15 {
    16     if(a.x == b.x)
    17     return a.y < b.y;
    18     else
    19     return a.x < b.x;
    20 }
    21 int main()
    22 {
    23     int n,i,j,ans,maxz,top;
    24     scanf("%d",&n);
    25     for(i = 0;i < n;i ++)
    26     {
    27         scanf("%d%d",&p[i].x,&p[i].y);
    28     }
    29     memset(flag,-1,sizeof(flag));
    30     sort(p,p+n,cmp);
    31     ans = 1;
    32     dp[0] = 1;
    33     flag[1] = p[0].y;
    34     top = 1;
    35     for(i = 1;i < n;i ++)
    36     {
    37         maxz = 0;
    38         for(j = top;j >= 1;j --)
    39         {
    40             if(p[i].x > flag[j])
    41             {
    42                 maxz = j;
    43                 break;
    44             }
    45         }
    46         dp[i] = maxz + 1;
    47         if(flag[maxz+1] == -1)
    48         {
    49             flag[maxz+1] = p[i].y;
    50             top ++;
    51         }
    52         else
    53         flag[maxz+1] = min(flag[maxz+1],p[i].y);
    54     }
    55     printf("%d
    ",top);
    56 }
  • 相关阅读:
    面向对象编程听高翔“面向对象与生活”有感
    .Net调试技巧
    关于排序(简单)
    Http Handler由IIS6到IIS7的使用问题
    也谈【关于 京东员工被离职】另一个角度
    poj1062昂贵的聘礼
    poj1125 Stockbroker Grapevine
    poj1860 Currency Exchange
    poj1258 AgriNet
    poj2485 Highways
  • 原文地址:https://www.cnblogs.com/naix-x/p/3298936.html
Copyright © 2011-2022 走看看