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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JZOJ 5627. 【NOI2018模拟4.3】paint

發布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JZOJ 5627. 【NOI2018模拟4.3】paint 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Description

Input

Output

Sample Input

樣例輸入1

10 10 4
1 6
4 1
6 9
9 4

樣例輸入2

10 10 4
2 2
4 4
7 7
9 9

Sample Output

樣例輸出1

32

樣例輸出2

26

Data Constraint

Solution

  • 先貼上原題題解:

  • 為方便統計答案,先加入兩個邊界點 (0,0)(w,h)

  • 之后將所有點按 X 坐標從小到大排序。

  • 我們對于直線 l:y=h2 ,上下同時維護各一個值遠離逐漸 l 的單調棧。

  • 棧中存著許多線段,線段樹中存著兩個棧元素縱坐標的相反數 ?Y1?Y2

  • 則取出后加上 h 就是對應矩形的寬了。

  • 其中 zjp_shadow的博客 講的很詳細:

  • (虛線 為中線,黑色 是當前單調棧里的,紅色 是現在將過來的一個線段)

  • 我們將兩個棧頂線段的答案進行更改,將這些線段的橫著的答案變小它坐標的相應的差值。

  • 這個就可以直接在線段樹上做加減法就行了。

  • 然后我們用這條 綠色紅色 的線段一起,共同構成一個新的線段存進單調棧中去。

  • 為了同時得到矩形的長,我們把值在減去當前的橫坐標 Xi

  • 之后在查詢時加上目前的橫坐標 Xi+1 ,這樣就得出了對應矩形的長 Xi+1?Xi

  • 這樣也就得到了當前矩形一半周長的最優答案。

  • 注意每做完一個點 i 時,要及時更新答案,并將 i 點的信息單點加到線段樹上。

  • 為了避免 i+1 不能成功進入棧中,需要在棧末尾加入一個極值點 (i,h/0) 來保證入棧。

  • 而對于直線 x=w2 也同理,交換坐標再做一遍即可。

  • 時間復雜度 O(N?log?N)

Code

#include<cstdio> #include<cstring> #include<algorithm> #include<cctype> using namespace std; const int N=2e5+5; struct data {int x,y; }a[N],f[N<<2],st1[N]/*down*/,st2[N]/*up*/; int w,h,n,ans; int top1,top2,qx,qy,qz; inline int read() {int X=0,w=0; char ch=0;while(!isdigit(ch)) w|=ch=='-',ch=getchar();while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();return w?-X:X; } inline bool cmp(data x,data y) {return x.x<y.x; } inline int max(int x,int y) {return x>y?x:y; } void change(int v,int l,int r) {if(qx<=l && r<=qy){f[v].x+=qz;f[v].y+=qz;return;}int mid=l+r>>1;if(qx<=mid) change(v<<1,l,mid);if(qy>mid) change(v<<1|1,mid+1,r);f[v].x=max(f[v<<1].x,f[v<<1|1].x)+f[v].y; } inline void solve() {memset(f,top1=top2=0,sizeof(f));sort(a+1,a+1+n,cmp);for(int i=1;i<n;i++){if(a[i].y<=h>>1){int t=i-1;while(top1 && st1[top1].y<a[i].y){qx=st1[top1].x,qy=t,qz=st1[top1].y-a[i].y;change(1,1,n);t=st1[top1--].x-1;}if(t^i-1) st1[++top1]=(data){t+1,a[i].y};}else{int t=i-1;while(top2 && st2[top2].y>a[i].y){qx=st2[top2].x,qy=t,qz=a[i].y-st2[top2].y;change(1,1,n);t=st2[top2--].x-1;}if(t^i-1) st2[++top2]=(data){t+1,a[i].y};}st1[++top1]=(data){i,0};st2[++top2]=(data){i,h};qx=qy=i,qz=h-a[i].x;change(1,1,n);ans=max(ans,f[1].x+a[i+1].x);} } int main() {w=read(),h=read(),n=read();for(int i=1;i<=n;i++) a[i].x=read(),a[i].y=read();a[++n]=(data){0,0};a[++n]=(data){w,h};solve();for(int i=1;i<=n;i++) swap(a[i].x,a[i].y);swap(w,h);solve();printf("%d",ans<<1);return 0; }

總結

以上是生活随笔為你收集整理的JZOJ 5627. 【NOI2018模拟4.3】paint的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 在线播放91灌醉迷j高跟美女 | 欧美xxxx×黑人性爽 | 一道本久久 | 久久精热| 日韩性插 | 欧美日韩1区2区3区 亚洲日本精品视频 | 观看av免费 | 国产精品电影院 | 欧美激情一区二区在线 | 亚洲人在线 | 外国电影免费观看高清完整版 | 久操免费在线视频 | 萌白酱喷水视频 | 久艹伊人 | 狠狠干网址| 亚洲人人爽| 黄频在线 | 18无码粉嫩小泬无套在线观看 | 日韩一区二区久久 | 欧美精品一区二区三区久久久竹菊 | 天堂亚洲 | 尤物av无码色av无码 | 午夜国产福利在线观看 | 三级影片在线免费观看 | 羞视频在线观看 | 亚洲综合色成人 | 免费看av的网址 | 亚洲女同二女同志 | 国模在线观看 | 四虎黄色影院 | 极品国产在线 | 亚洲综合一 | 色撸撸在线观看 | 日本高清在线观看 | 中文av网站 | 91黄在线看 | 肥婆大荫蒂欧美另类 | 国产做受91 | www夜片内射视频日韩精品成人 | 欧美老熟妇一区二区三区 | 久久成人综合网 | 欧美视频在线观看一区 | 免费观看高清在线 | 日韩一中文字幕 | www.精品在线 | 中文字幕乱码一区二区三区 | 国产一区二区免费 | 永久免费黄色 | 美女扒开内裤让男人桶 | 欧美日韩在线视频一区 | 999xxxxx| 亚洲性猛交 | 亚洲美女综合网 | 国产污在线观看 | 香蕉伊人网 | 国产毛片毛片毛片毛片毛片 | 国产精品成人无码专区 | 激情影院内射美女 | 久久人人爽爽 | 久久激情五月 | 九九九久久久精品 | 日韩av女优在线观看 | 永久免费黄色片 | 国产精品久久久久久久久久久不卡 | 日b视频在线观看 | 日韩国产第一页 | 麻豆自拍视频 | 国产高清不卡视频 | 欧美做爰啪啪xxxⅹ性 | 成人在线网 | 高h在线观看 | 国产无限资源 | 国产va亚洲va在线va | 成人午夜视频免费在线观看 | 亚洲精品日韩在线 | 国产高清在线免费观看 | 一出一进一爽一粗一大视频 | 理论片高清免费理伦片 | 少妇一级1淫片 | 日本三级韩国三级三级a级按摩 | porn麻豆 | 精品国产乱子伦 | 亚洲福利在线视频 | 欧美性猛交xxxx乱大交3 | 亚洲一区成人 | 夜夜久久 | 哪里有毛片看 | 黄色仓库av | 亚洲伦理精品 | 在线免费观看污网站 | 中文字幕35页 | 亚洲在线激情 | 香蕉视频官网 | 网站毛片 | 中文字幕天堂 | 自拍偷拍国产精品 | 亚洲a网站 | 日韩精品无码一区二区三区久久久 | 久久久久久久久久久久久久久久久久久 |