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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树:区间覆盖+单点最大小)...

發(fā)布時間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树:区间覆盖+单点最大小)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

HDU 5861

題意

在n個村莊之間存在n-1段路,令某段路開放一天需要交納wi的費用,但是每段路只能開放一次,一旦關(guān)閉將不再開放。現(xiàn)在給你接下來m天內(nèi)的計劃,在第i天,需要對村莊ai到村莊bi的道路進行開放。在滿足m天內(nèi)花費最小的情況下,求出每天的花銷。

?

分析:

我們可以想到用線段樹想到記錄每一段路的開始時間與結(jié)束時間,開始時間很簡單,就是一開始的時間,結(jié)束的時間求法可以參考區(qū)間覆蓋,這是類似的;

然后我們在轉(zhuǎn)化哪一天開哪些,哪一天關(guān)哪些,那這天的貢獻sum = 開-關(guān) ;

?

這很關(guān)鍵,我在比賽就沒有想出來。。? ?

例:如st[1]=3,表示第1段道路的最早開始時間是第3天,那么你可以start[3].push_back(1),表示第3天開啟第1段道路,這樣掃一遍過去就行了;

這是一種,要不就用d[be[i]]+=w[i] , d[en[i]]-=w[i];? 其實差不多

?

#include<bits/stdc++.h>using namespace std ; #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 const int maxn = 200020; int Begin[maxn << 2], End[maxn << 2]; int be[maxn],en[maxn],w[maxn]; long long sum[maxn],d[maxn]; void pushdown(int rt)//向下跟新 {if(!Begin[rt<<1])Begin[rt<<1]=Begin[rt];if(!Begin[rt<<1|1])Begin[rt<<1|1]=Begin[rt];if(!End[rt])return ;End[rt<<1]=End[rt<<1|1]=End[rt];End[rt]=0;///優(yōu)化用過了就可以不用了 } void build(int l , int r , int rt) {Begin[rt]=End[rt]=0;if(l==r)return ;int m = (l+r) >> 1 ;build(lson);build(rson); }void update(int L , int R , int k , int l , int r , int rt) {if(L<=l && r<=R){if(!Begin[rt])///很簡單的道理,我跟新過了就不跟新了;Begin[rt]=k;End[rt]=k;return ;}pushdown(rt);int m=(l+r) >> 1;if(m>=L)update(L,R,k,lson);if(m<R)update(L,R,k,rson); } void pushall(int l , int r , int rt) {if(l==r){be[l]=Begin[rt],en[l]=End[rt];return ;}pushdown(rt);int m=(l+r)>>1;pushall(lson);pushall(rson); } int main() {int n,m;while(~scanf("%d%d",&n,&m)){n--;build(1,n,1);///建樹for(int i=1 ; i<=n ; i++)scanf("%d",&w[i]);for(int i=1 ; i<=m ; i++){int u,v;scanf("%d%d",&u,&v);if(u>v)//防止意外 swap(u,v);update(u,v-1,i,1,n,1);///u到v區(qū)間更新為i(天); }pushall(1,n,1);//找到每一段路的開始時間與結(jié)束時間memset(d,0,sizeof(d));for(int i=1 ; i<=n ; i++)//每一段路的開始費用與結(jié)束費用 {if(be[i]){d[be[i]]+=w[i];d[en[i]+1]-=w[i];}}sum[0]=0;for(int i=1 ; i<=m ; i++)///類似與掃描線,一天一天的掃過去 {sum[i]=sum[i-1]+d[i];printf("%lld\n",sum[i]);}} } View Code

?

線段樹真厲害,以后就不要只是固定與模板,要與線段樹的結(jié)構(gòu)與自己需要用的功能結(jié)合

轉(zhuǎn)載于:https://www.cnblogs.com/shuaihui520/p/9795013.html

總結(jié)

以上是生活随笔為你收集整理的2016 Multi-University Training Contest 10 [HDU 5861] Road (线段树:区间覆盖+单点最大小)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费在线小视频 | 亚洲天堂av线 | 亚洲另类色综合网站 | 一级黄色美女 | 日韩av在线免费播放 | 欧美黑人疯狂性受xxxxx野外 | 日韩国产成人无码av毛片 | 中文自拍| 在线免费视频观看 | 国产第一福利 | 国产日韩精品久久 | 在线观看精品国产 | 麻豆传媒一区二区 | 肉丝超薄少妇一区二区三区 | 91看片免费看 | 亚洲av成人无码一区二区三区在线观看 | 国产成人精品一区二区无码呦 | 亚洲影院在线观看 | 妹子干综合 | 日韩精品久久一区 | 91亚洲精华 | 男男做性免费视频网 | av电影在线观看 | 另类激情亚洲 | 懂色av蜜臀av粉嫩av分享吧 | 噜噜噜亚洲色成人网站 | 黄色另类小说 | 日批的视频 | 久久久久久久国产精品美女 | 毛片网站免费在线观看 | 激情视频91 | 亚洲综合激情另类小说区 | 九九久久国产视频 | 91www在线观看| 极品人妻一区二区三区 | 久久影院精品 | 波多野结衣女同 | 最新欧美日韩 | 黄av网| 男操女视频免费 | av电影在线观看不卡 | jizz日本在线 | 夜夜夜操 | 都市激情亚洲一区 | 日韩极品一区 | 中文字幕精品久久久久人妻红杏1 | 欧美资源在线观看 | av av片在线看 | 亚洲欧美日韩国产一区二区 | 色网av| 噜噜噜噜噜色 | 国产美女免费网站 | 中国av片 | 精品一区在线视频 | 一区二区三区视频在线播放 | 韩国伦理在线 | 澳门免费av| 亚州av在线播放 | brazzers欧美大波霸 | 免费看黄色三级 | 中文字幕 欧美日韩 | 五月天婷婷激情视频 | 成人免费入口 | 亚洲一区二区不卡在线观看 | 国产剧情自拍 | 欧美国产成人精品一区二区三区 | 又色又爽又高潮免费视频国产 | 欧美一区高清 | 国产一区二区三区福利 | 国产一区二区三区黄 | 4438五月天 | 亚洲成人av影片 | 老子影院午夜伦不卡大全 | 麻豆视频国产精品 | 日韩欧美综合久久 | av福利在线播放 | ass亚洲熟妇毛耸耸pics | 亚洲区小说区图片区 | 综合视频在线 | 日韩网站在线 | 99热超碰 | 精产国品一区二区三区 | 国产精品永久免费视频 | 久草福利资源 | 日本少妇喷水视频 | 黄色大视频 | 午夜神马影院 | jizz成熟丰满日本少妇 | 国产资源网站 | 欧美中文字幕在线播放 | 99热精品在线播放 | 欧美片在线观看 | 欧美一区二区三区四区五区六区 | 欧美男人又粗又长又大 | 日韩午夜视频在线观看 | 紧身裙女教师三上悠亚红杏 | 欧美不卡高清 | 花样视频污 | 操穴影院|