码迷,mamicode.com
首页 > 其他好文 > 详细

hdu--5124--5125-bc

时间:2014-11-29 22:51:49      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   for   

这2题放一起吧 反正都是同一场的.

B题 虽然是被自己想复杂了 用了树状数组。。

当时自己还没离散化出来 还是用了超神的离散化 ‘

不知道自己的哪边错了 ffffffk

<区间更新  单点查询>

bubuko.com,布布扣
 1 #include <iostream>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 
 6 int res;
 7 const int size = 100010*3;
 8 struct data
 9 {
10     int L;
11     int R;
12 }node[size];
13 int lisan[size] , a[size] , tree[size];
14 
15 int lowBit( int x )
16 {
17     return x & -x;
18 }
19 
20 void update( int index , int var )
21 {
22     while( index<=res )
23     {
24         tree[index] += var;
25         index += lowBit( index );
26     }
27 }
28 
29 int getSum( int index )
30 {
31     int sum = 0;
32     while( index )
33     {
34         sum += tree[index];
35         index -=lowBit( index );
36     }
37     return sum;
38 }
39 
40 int main()
41 {
42     cin.sync_with_stdio(false);
43     int t , n , ans , cnt;
44     cin >> t;
45     while( t-- )
46     {
47         cin >> n;
48         memset( tree , 0 , sizeof(tree) );
49         res = cnt = 1;
50         for( int i = 1 ; i<=n ; i++ )
51         {
52             cin >> node[i].L >> node[i].R;
53             a[cnt++] = node[i].L;
54             a[cnt++] = node[i].R;
55         }
56         sort( a+1 , a+cnt );
57         for( int i = 1 ; i<cnt ; i++ )
58         {
59             if (i == 1)
60             {
61                 lisan[a[i]] = ++res;
62             }
63             else if (a[i] == a[i - 1])
64             {
65                 lisan[a[i]] = lisan[a[i - 1]];
66             }
67             else
68             {
69                 lisan[a[i]] = ++res;
70             }
71         }
72         for( int i = 1 ; i<=n ; i++ )
73         {
74             update(  lisan[ node[i].L ] , 1 );
75             update( lisan[ node[i].R ]+1 , -1 );
76         }
77         ans = 0;
78         for( int i = 1 ; i<=cnt ; i++ )
79         {
80             ans = max( ans , getSum(i) );
81         }
82         cout << ans << endl;
83     }
84     return 0;
85 }
View Code

另外一个dp还没出  明天再想吧 累。。。

hdu--5124--5125-bc

标签:style   blog   http   io   ar   color   os   sp   for   

原文地址:http://www.cnblogs.com/radical/p/4132048.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!