日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

楼房

發布時間:2023/11/27 生活经验 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 楼房 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目描述

地平線(x軸)上有n個矩(lou)形(fang),用三個整數h[i],l[i],r[i]來表示第i個矩形:矩形左下角為(l[i],0),右上角為(r[i],h[i])。地平線高度為0。在輪廓線長度最小的前提下,從左到右輸出輪廓線。

下圖為樣例2。

輸入輸出格式

輸入格式:

第一行一個整數n,表示矩形個數

以下n行,每行3個整數h[i],l[i],r[i]表示第i個矩形。

輸出格式:

第一行一個整數m,表示節點個數

以下m行,每行一個坐標表示輪廓線上的節點。從左到右遍歷輪廓線并順序輸出節點。第一個和最后一個節點的y坐標必然為0。

輸入輸出樣例

輸入樣例#1:
【樣例輸入1】
2
3 0 2
4 1 3【樣例輸入2】
5
3 -3 0
2 -1 1
4 2 4
2 3 7
3 6 8
輸出樣例#1:
【樣例輸出1】
6
0 0
0 3
1 3
1 4
3 4
3 0【樣例輸出2】
14
-3 0
-3 3
0 3
0 2
1 2
1 0
2 0
2 4
4 4
4 2
6 2
6 3
8 3
8 0

說明

【數據范圍】

對于30%的數據,n<=100

對于另外30%的數據,n<=100000,1<=h[i],l[i],r[i]<=1000

對于100%的數據,1<=n<=100000,1<=h[i]<=10^9,-10^9<=l[i]<r[i]<=10^9

思路

參見 樓房 洛谷1382 && codevs2995 by:Soda 順膜.

有一個叫掃描線的東西,我沒用到~

有一種線段樹的做法,我不會~

然后就用堆模擬,手生的直接敲不對。。。

代碼實現

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 const int maxn=3e6;
 5 int n,s,lat,net,idd;
 6 int a,b,c;
 7 bool v[maxn];
 8 struct nate{int num,id,h;}f[maxn];
 9 bool cmp(const nate&x,const nate&y){return x.id<y.id;}
10 int top;
11 int h[maxn];
12 void add(int x){
13     h[++top]=x,a=top,b=a>>1;
14     while(f[h[a]].h>f[h[b]].h&&b){
15         h[a]^=h[b],h[b]^=h[a],h[a]^=h[b];
16         a=b,b=a>>1;
17     }
18 }
19 void dle(){
20     a=1,b=a<<1,c=b|1;
21     h[a]=h[top],h[top--]=0;
22     while(1){
23         if(f[h[c]].h>f[h[b]].h) b=c;
24         if(f[h[b]].h>f[h[a]].h) h[a]^=h[b],h[b]^=h[a],h[a]^=h[b];
25         else break;
26         a=b,b=a<<1,c=b|1;
27     }
28 }
29 int anss,ans[2][maxn];
30 int main(){
31     scanf("%d",&n);
32     for(int i=1;i<=n;i++){
33         scanf("%d%d%d",&a,&b,&c);
34         f[++s]=(nate){i,b,a};
35         f[++s]=(nate){i,c,a};
36     }
37     sort(f+1,f+s+1,cmp);
38     for(int i=1;i<=s;){
39         lat=f[h[1]].h;
40         idd=f[i].id;
41         while(idd==f[i].id){
42             v[f[i].num]^=1;
43             if(v[f[i].num]) add(i);
44             else while(!v[f[h[1]].num]&&h[1]) dle();
45             i++;
46         }
47         net=f[h[1]].h;
48         if(lat==net) continue;
49         ans[0][anss]=idd,ans[1][anss++]=lat;
50         ans[0][anss]=idd,ans[1][anss++]=net;
51     }
52     printf("%d\n",anss);
53     for(int i=0;i<anss;i++)
54     printf("%d %d\n",ans[0][i],ans[1][i]);
55     return 0;
56 }

?

轉載于:https://www.cnblogs.com/J-william/p/7162305.html

總結

以上是生活随笔為你收集整理的楼房的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲天堂一区二区三区四区 | 视频二区中文字幕 | 免费看60分钟黄视频 | 国产av无码国产av毛片 | av在线伊人| 校霸被c到爽夹震蛋上课高潮 | 粗大黑人巨茎大战欧美成人免费看 | 欧美超碰在线观看 | 国产一区二区三区四区三区四 | 国产三级精品视频 | 男人日女人b视频 | 不卡视频一区二区 | 日韩欧美亚洲 | 97视频在线免费 | 狠狠躁日日躁 | 男男做的视频 | 一区二区日本视频 | 男人添女人下部高潮全视频 | 久久精品123 | 免费观看一级黄色片 | 日批在线观看视频 | 妓院一钑片免看黄大片 | 免费一级suv好看的国产网站 | 日免费视频 | 美国色视频 | 51福利视频| 国产精品久久久久久久久免费桃花 | 久久精品99久久久 | 日韩一级一级 | 精品视频站长推荐 | av福利网| 国产精品羞羞答答在线观看 | 丰满岳乱妇一区二区三区 | 精品九九| 国产精品一区二区无线 | 精品乱码一区二区三区四区 | 亚洲精品成人片在线观看精品字幕 | 五月天久久久久 | 日韩aaaaa| 国产午夜成人久久无码一区二区 | 一区二区蜜桃 | 国产精品欧美一区喷水 | 一区二区福利 | 欧美午夜剧场 | 精品一区二区精品 | 91影院在线观看 | 欧美大尺度视频 | 豆花av在线 | 欧美jizzhd精品欧美18 | 免费av不卡在线观看 | 亚洲乱码国产乱码精品天美传媒 | 国产又爽又黄无码无遮挡在线观看 | 久久艹影院 | videos亚洲| 色哟哟网站 | 久久久久久久久久免费视频 | 狠狠爱免费视频 | 亚洲爽妇网 | 欧美黄色免费观看 | 亚洲成人av一区二区 | 国产熟妇与子伦hd | 91网址在线观看 | 亚洲AV无码精品黑人黑人 | 99久久精品无码一区二区毛片 | 黄色a一级视频 | 黄色美女毛片 | 精品影视 | 亚洲国产精品二区 | 国产精品永久免费视频 | 男人天堂社区 | 成人欧美一区二区三区黑人孕妇 | 日韩高清不卡在线 | 韩国明星乱淫(高h)小说 | 国产欧美在线观看视频 | 就爱操av| 欧美色图久久 | 白丝校花扒腿让我c | 国产男女视频 | 亚洲天堂av网 | 久久韩国| 极品国产白皙 | 国产大片黄 | 中文字幕乱码中文乱码b站 国产一区二区三区在线观看视频 | 网址在线观看你懂的 | 亚洲一区av在线 | 五月天视频 | 五月婷婷视频在线 | 97福利| 欧美人性生活视频 | 热re99久久精品国产99热 | 国产日韩av一区二区 | 国产精品久久久久久久一区二区 | 91av爱爱 | 国产福利网站 | 国毛片 | 性久久久 | 污污视频网站在线免费观看 | 欧美永久精品 | 网爆门在线 |