zoukankan      html  css  js  c++  java
  • HDOJ 2037

      1 #include<iostream>
      2 using namespace std;
      3 
      4 #include<vector>
      5 #include<math.h>
      6 #include<iomanip>
      7 #include<string.h>
      8 
      9 void swap(int &a,int &b)
     10 {
     11         int c = a;
     12         a = b;
     13         b = c;
     14 }
     15 
     16 int partition(vector<int> &vs,vector<int> &ve,int start,int end)
     17 {
     18         int a = vs[start];
     19         int b = ve[start];
     20         while(start < end)
     21         {
     22                 while(start < end && vs[end] >= a) --end;
     23                 if(start < end)
     24                 {
     25                         vs[start] = vs[end];
     26                         ve[start] = ve[end];
     27                 }
     28                 while(start < end && vs[start] <= a) ++start;
     29                 if(start < end)
     30                 {
     31                         vs[end] = vs[start];
     32                         ve[end] = ve[start];
     33                 }
     34         }
     35         vs[start] = a;
     36         ve[start] = b;
     37         return start;
     38 }
     39 
     40 void quickSort(vector<int> &vs,vector<int> &ve,int start,int end)
     41 {
     42         if(start < end)
     43         {
     44                 int pos = partition(vs,ve,start,end);
     45                 quickSort(vs,ve,start,pos-1);
     46                 quickSort(vs,ve,pos+1,end);
     47         }
     48 }
     49 
     50 int max(int count[],int start,int end)
     51 {
     52         int c = count[start];
     53         for(int i = start+1;i < end;i++)
     54         {
     55                 if(c < count[i]) c = count[i];
     56         }
     57         return c;
     58 }
     59 
     60 int findFirst(vector<int> vs,int a,int end)
     61 {
     62         int i = 0;
     63         while(vs[i] < a && i <= end) i++;
     64         if(i > end) return -1;
     65         return i;
     66 }
     67 
     68 int main()
     69 {
     70         int n,s,e,c,maxcount;
     71         while(cin>>n && n != 0)
     72         {
     73                 c = 0;
     74                 int count[n],i;
     75                 memset(count,0,sizeof(int)*n);
     76                 vector<int> vs,ve;
     77                 for(i = 0;i < n;i++)
     78                 {
     79                         cin>>s>>e;
     80                         vs.push_back(s);
     81                         ve.push_back(e);
     82                 }
     83                 quickSort(vs,ve,0,vs.size()-1);
     84                 for(i = 1;i < vs.size();)
     85                 {
     86                         while(vs[i] == vs[i-1])
     87                         {
     88                                 ++c;
     89                                 ++i;
     90                         }
     91                         quickSort(ve,vs,i-c-1,i-1);
     92                         c = 0;
     93                         ++i;
     94                 }
     95                 i = vs.size()-1;
     96                 while(vs[i] == vs[i-1])
     97                 {
     98                         count[i] = 1;
     99                         --i;
    100                 }
    101                 count[i] = 1;
    102                 --i;
    103                 maxcount = 1;
    104                 for(;i >= 0;--i)
    105                 {
    106                         int start = findFirst(vs,ve[i],vs.size()-1);
    107                         if(start == -1)
    108                         {
    109                                 count[i] = 1;
    110                                 continue;
    111                         }
    112                         count[i] = 1+max(count,start,vs.size()-1);
    113                         if(maxcount < count[i]) maxcount = count[i];
    114                 }
    115 
    116                 cout<<maxcount<<endl;
    117         }
    118 
    119         return 0;
    120 }
  • 相关阅读:
    设计模式03-工厂方法
    设计模式02-抽象工厂
    设计模式01-什么是设计模式
    工作流activiti-03数据查询(流程定义 流程实例 代办任务) 以及个人小练习
    工作流activiti-02事物控制、流程引擎创建
    工作流activiti-01个人小结
    jQuery.extend 函数详解
    hibernate框架学习之数据查询(QBC)
    hibernate框架学习之多表查询helloworld
    hibernate框架学习之数据查询(HQL)helloworld
  • 原文地址:https://www.cnblogs.com/maowang1991/p/2806121.html
Copyright © 2011-2022 走看看