锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久亚洲AV成人片,欧美日韩精品久久久免费观看,亚洲色欲久久久久综合网http://m.shnenglu.com/ZAKIR/category/14781.html錕?鏂桟ode騫村崕=錕?/description>zh-cnMon, 30 Aug 2010 07:05:21 GMTMon, 30 Aug 2010 07:05:21 GMT60- POJ 3277 City Horizonhttp://m.shnenglu.com/ZAKIR/articles/125145.htmlZAKIRZAKIRSun, 29 Aug 2010 03:42:00 GMThttp://m.shnenglu.com/ZAKIR/articles/125145.htmlhttp://m.shnenglu.com/ZAKIR/comments/125145.htmlhttp://m.shnenglu.com/ZAKIR/articles/125145.html#Feedback0http://m.shnenglu.com/ZAKIR/comments/commentRss/125145.htmlhttp://m.shnenglu.com/ZAKIR/services/trackbacks/125145.html 1 #include <iostream>
2 #include <algorithm>
3 #include <cstdio>
4 using namespace std;
5
6 const int MaxSize=90001;
7
8 struct Node
9 { int left,right,mid;
10 int hight;
11 };
12
13
14 struct Building
15 { int left,right,hight;
16 }b[40001];
17 bool cmp(Building a,Building b)
18 { return a.hight>b.hight;}
19
20 Node itree[3*MaxSize];
21
22 void Build(int l,int r,int num)
23 { itree[num].left=l;
24 itree[num].right=r;
25 itree[num].mid=(l+r)/2;
26 itree[num].hight=0;
27
28 if(l+1!=r)
29 { Build(l,itree[num].mid,num<<1);
30 Build(itree[num].mid,r,(num<<1)+1);
31 }
32 }
33
34 void Insert(int l,int r,int h,int num)
35 { if(itree[num].left==l&&itree[num].right==r)
36 { if(h>itree[num].hight)
37 itree[num].hight=h;
38 return;
39 }
40 if(r<=itree[num].mid)
41 Insert(l,r,h,num<<1);
42 else if(l>=itree[num].mid)
43 Insert(l,r,h,(num<<1)+1);
44 else
45 { Insert(l,itree[num].mid,h,num<<1);
46 Insert(itree[num].mid,r,h,(num<<1)+1);
47 }
48 }
49
50
51 int hash[MaxSize];
52
53 long long Calc(int h,int num)
54 { if(h>itree[num].hight)
55 itree[num].hight=h;
56 if(itree[num].left+1==itree[num].right)
57 { return (long long)itree[num].hight*(hash[itree[num].right]-hash[itree[num].left]);
58 }
59 return Calc(itree[num].hight,num<<1)+Calc(itree[num].hight,(num<<1)+1);
60 }
61
62 int BinarySearch(int *from,int *end,int key)
63 { int low=0,high=end-from;
64 int mid=(low+high)/2;
65 while(low<=high)
66 if(from[mid]==key)
67 return mid;
68 else if(from[mid]>key)
69 { high=mid-1;
70 mid=(high+low)/2;
71 }
72 else
73 { low=mid+1;
74 mid=(high+low)/2;
75 }
76 return mid;
77 }
78
79
80 int main()
81 {
82 int N;
83 scanf("%d",&N);
84 for(int i=0;i<N;i++)
85 { scanf("%d%d%d",&b[i].left,&b[i].right,&b[i].hight);
86 hash[i<<1]=b[i].left;
87 hash[(i<<1)+1]=b[i].right;
88 }
89 int hlen=0;
90 sort(hash,hash+2*N);
91 sort(b,b+N,cmp);
92 for(int i=0;i<2*N-1;i++)
93 if(hash[i]!=hash[i+1])
94 hash[++hlen]=hash[i+1];
95 hlen++;
96 Build(0,hlen,1);
97 for(int i=0;i<N;i++)
98 { int l=BinarySearch(hash,hash+hlen,b[i].left);
99 int r=BinarySearch(hash,hash+hlen,b[i].right);
100 Insert(l,r,b[i].hight,1);
101 }
102 cout<<Calc(0,1)<<endl;
103 //printf("%I64d\n",Calc(0,1));
104 return 0;
105 }
]]>
久久只这里是精品66|
一本一本久久aa综合精品|
国产亚洲精品美女久久久|
久久国产亚洲高清观看|
伊人久久免费视频|
久久亚洲高清综合|
少妇精品久久久一区二区三区|
亚洲国产精品成人久久|
久久精品国产一区二区|
性欧美大战久久久久久久久|
伊人久久大香线焦综合四虎|
丁香色欲久久久久久综合网|
久久99精品久久久久久噜噜|
久久久久亚洲AV成人网人人网站|
久久久久久久99精品免费观看|
久久婷婷午色综合夜啪|
中文字幕一区二区三区久久网站
|
一本久久知道综合久久|
国产成人精品久久亚洲高清不卡
国产成人精品久久亚洲高清不卡
国产成人精品久久亚洲
|
久久精品国产久精国产果冻传媒
|
午夜精品久久久久久99热|
久久国产精品波多野结衣AV|
久久婷婷色综合一区二区|
久久精品国产99久久丝袜|
99久久人妻无码精品系列|
国产精久久一区二区三区|
久久99精品国产麻豆宅宅|
欧美久久久久久精选9999|
久久亚洲国产精品一区二区|
久久妇女高潮几次MBA|
久久黄视频|
久久人人爽人爽人人爽av|
国产精品久久一区二区三区|
久久天天躁夜夜躁狠狠|
久久亚洲国产精品五月天婷|
Xx性欧美肥妇精品久久久久久|
国内精品久久久久久久97牛牛|
久久国产免费直播|
日韩精品久久无码中文字幕|
久久久久人妻一区二区三区vr|
亚洲综合伊人久久大杳蕉|