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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

BZOJ4653 洛谷1712 UOJ222:[NOI2016]区间——题解

發布時間:2025/7/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ4653 洛谷1712 UOJ222:[NOI2016]区间——题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.lydsy.com/JudgeOnline/problem.php?id=4653

https://www.luogu.org/problemnew/show/P1712

http://uoj.ac/problem/222

在數軸上有 n個閉區間 [l1,r1],[l2,r2],...,[ln,rn]。現在要從中選出 m 個區間,使得這 m個區間共同包含至少一個位置。換句話說,就是使得存在一個 x,使得對于每一個被選中的區間 [li,ri],都有 li≤x≤ri。

對于一個合法的選取方案,它的花費為被選中的最長區間長度減去被選中的最短區間長度。區間 [li,ri] 的長度定義為 ri?li,即等于它的右端點的值減去左端點的值。 求所有合法方案中最小的花費。如果不存在合法的方案,輸出 ?1。

(天哪我終于會做套路題了……雖然對于判斷是否合法的時候沒想到線段樹……)

看復雜度是O(nlogn)猜想可能又是枚舉左端點找右端點的套路。

然而相比于一個點被覆蓋m次,更難處理的是這個答案的運算。

于是我們將區間按照權值排序,接著就是兩個指針不斷擴大,當合法的時候更新一下答案就行了。

那么如何維護一個點被最多被覆蓋了多少次呢?線段樹唄。

注意空間不要開小了-=-

#include<cmath> #include<stack> #include<queue> #include<cstdio> #include<cctype> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; const int INF=2e9; const int N=5e5+5; 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; } struct range{int l,r,w; }g[N]; int n,m,lim,b[2*N],tr[8*N],lz[8*N]; inline bool cmp(range a,range b){return a.w<b.w; } inline void LSH(){sort(b+1,b+lim+1);lim=unique(b+1,b+lim+1)-b-1;for(int i=1;i<=n;i++){g[i].l=lower_bound(b+1,b+lim+1,g[i].l)-b;g[i].r=lower_bound(b+1,b+lim+1,g[i].r)-b;} } inline void push(int a){if(!lz[a])return;lz[a<<1]+=lz[a];lz[a<<1|1]+=lz[a];tr[a<<1]+=lz[a];tr[a<<1|1]+=lz[a];lz[a]=0; } void insert(int a,int l,int r,int l1,int r1,int w){if(r<l1||r1<l)return;if(l1<=l&&r<=r1){tr[a]+=w;lz[a]+=w;return;}push(a);int mid=(l+r)>>1;insert(a<<1,l,mid,l1,r1,w);insert(a<<1|1,mid+1,r,l1,r1,w);tr[a]=max(tr[a<<1],tr[a<<1|1]); } int main(){n=read(),m=read();for(int i=1;i<=n;i++){g[i].l=b[++lim]=read();g[i].r=b[++lim]=read();g[i].w=g[i].r-g[i].l;}LSH();sort(g+1,g+n+1,cmp);int l=1,ans=INF;for(int l=1,r=0;l<=n;l++){while(r<n&&tr[1]<m){r++;insert(1,1,lim,g[r].l,g[r].r,1);}if(tr[1]>=m)ans=min(ans,g[r].w-g[l].w);insert(1,1,lim,g[l].l,g[l].r,-1);}printf("%d\n",ans==INF?-1:ans);return 0; }

+++++++++++++++++++++++++++++++++++++++++++

?+本文作者:luyouqi233。               +

?+歡迎訪問我的博客:http://www.cnblogs.com/luyouqi233/+

+++++++++++++++++++++++++++++++++++++++++++

轉載于:https://www.cnblogs.com/luyouqi233/p/9132055.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的BZOJ4653 洛谷1712 UOJ222:[NOI2016]区间——题解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本久久伊人 | 性感美女在线观看 | 献给魔王伊伏洛基亚吧动漫在线观看 | 日本视频在线看 | 黄色理论片 | 中文字幕一区二区人妻在线不卡 | 天天操天天操天天操天天操天天操 | 美女福利视频在线观看 | 国模吧无码一区二区三区 | 午夜欧美成人 | 99爱在线观看 | 精品国产久 | 香蕉久久国产av一区二区 | 国产网站黄色 | 日本三级久久 | 亚洲精品乱码久久久久99 | 国产午夜福利一区 | 女裸全身无奶罩内裤内衣内裤 | 国产精品一区久久 | 欧美巨大荫蒂茸毛毛人妖 | 免费观看成年人视频 | 久久9久久 | 日本va视频| 打屁股外国网站 | 五月婷婷亚洲 | 97超碰免费在线 | 久久福利视频导航 | 久久av色| 日本免费一级片 | 成人一区二区电影 | 国产一区二区av在线 | 韩国一区二区三区四区 | 国产后入又长又硬 | 亚洲欧美自拍另类 | 草草影院最新地址 | 麻豆视频国产精品 | 一级做a免费视频 | 日韩美女在线 | 777米奇影视第四色 五月丁香久久婷婷 | 亚洲成人aaa | 使劲插视频 | 91 久久| av色婷婷 | 欧美福利一区二区三区 | 黄网视频在线观看 | 国产午夜三级 | 久久aⅴ乱码一区二区三区 亚洲成人18 | 精品一区电影 | 欧洲在线观看 | 欧美午夜精品久久久久久蜜 | 九九热九九| 黄色片免费在线 | 欧美性猛交富婆 | 精品人伦一区二区三区蜜桃网站 | 欧美特级黄色 | 久久yy | 欧美做爰猛烈床戏大尺度 | 欧美激情视频网 | 国产操比视频 | 亚洲乱码日产精品bd在线观看 | 国产精品熟女久久久久久 | av资源天堂 | 国产在线日本 | 日本美女黄色大片 | 亚洲av成人无码久久精品 | 日本aaa视频| 欧美日韩小视频 | www.欧美精品| 一区二区三区美女 | 日韩欧美成人一区二区三区 | 精品人妻一区二区三区换脸明星 | 欧美日韩一区二 | 懂色av一区二区三区四区五区 | 99这里| 狠色综合7777夜色撩人 | 国产精品乱码久久久久久 | 欧美激情国产日韩精品一区18 | 久久久影视 | 国产九色在线 | 99啪啪| 中文字幕日韩在线播放 | 免费a级 | 欧美在线播放 | 伊人视频 | 国产一区亚洲二区 | 免费在线看黄网站 | 日韩视频在线播放 | 97视频播放 | 成人aⅴ视频 | 欧美日韩一二三四 | 一区二区三区精品视频在线观看 | 欧美三级精品 | 亚洲成人一区二区 | 好吊日免费视频 | 国产真实自拍 | 四虎网站在线观看 | 久久精品视频一区二区 | 欧美人与动物xxx | 在线不卡|