zoukankan      html  css  js  c++  java
  • SSLOJ 1336.膜拜神牛

    题目

    题目描述

    Garfield听说OI班有N头神牛,每头神牛有两个属性,算法能力和思维能力,分别以AiBi表示。如果神牛i和神牛j满足Ai ≥ AjBi ≤ Bj,那么两位神牛会互相膜拜。Garfield认为膜拜是不和谐的,所以她想知道,最大的不存在膜拜关系的子集大小。
     

    输入

    第一行,一个整数N,表示神牛数量。
    接下来N行,每行两个整数Ai和Bi,表示神牛的算法能力和思维能力。

    输出

    一个整数,表示最大的子集大小。

    输入样例复制

    3
    1 1
    2 3
    3 2

    输出样例复制

    2

    说明

    数据规模
    对于40%的数据,N ≤ 103,
    对于100%的数据,N ≤ 105。

     

    分析

    • 一眼排序然后求最长序列??

    • 相等的排序处理好就行了

     

    代码

     1 #include<iostream>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 struct sb
     6 {
     7     int a,b;
     8 }t[1000010];
     9 int d[1000010];
    10 bool cmp(sb a,sb b)
    11 {
    12     if (a.a>b.a) return true;
    13     if (a.a==b.a)
    14       if (a.b<b.b) return true;
    15     return false;
    16 }
    17 bool cmpp(int a,int b)
    18 {
    19     return a>=b;
    20 }
    21 int ans;
    22 int main ()
    23 {
    24     int n;
    25     cin>>n;
    26     for (int i=1;i<=n;i++)
    27         cin>>t[i].a>>t[i].b;
    28     sort(t+1,t+1+n,cmp);
    29     d[1]=t[1].b;
    30     int len=1;
    31     for (int i=2;i<=n;i++)
    32     {
    33         if (t[i].b<d[len]) d[++len]=t[i].b;
    34         else 
    35         {
    36             int wz=upper_bound(d+1,d+1+len,t[i].b,cmpp)-d;
    37             d[wz]=t[i].b;
    38         }
    39     }
    40     ans=max(ans,len);
    41     cout<<ans; 
    42 }
    为何要逼自己长大,去闯不该闯的荒唐
  • 相关阅读:
    Spring中依赖注入的四种方式
    使用 EasyMock 更轻松地进行测试
    HDU2196 Computer(树形DP)
    BZOJ2125: 最短路(圆方树)
    虚树入门
    BZOJ2286: [Sdoi2011]消耗战(虚树/树形DP)
    Codeforces Round #487 (Div. 2)
    Educational Codeforces Round 45 (Rated for Div. 2)
    BZOJ3675: [Apio2014]序列分割(斜率优化)
    BZOJ2761: [JLOI2011]不重复数字(map)
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/11311967.html
Copyright © 2011-2022 走看看