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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ZOJ 1610 Count the Colors 【线段树】

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ZOJ 1610 Count the Colors 【线段树】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

<題目鏈接>

題目大意:

在[0,8000]這個區間內,不斷進行一些操作,將其中的一些區間染成特定顏色,如果區間重復的話,后面染的色塊會覆蓋前面染的色塊,問最終[0,8000]這個區間內每種顏色的色塊數量是多少。

解題分析:

首先要注意,這是對區間進行更新,。所以update的時候是對輸入區間[a,b]的左閉右開或者是左開右閉進行處理。然后本題思路非常清晰,就是按照輸入順序更新線段樹對應區間,然后對[0,8000]這個區間從左向右進行色塊的統計。PS:雖然最后還是要將所有lazy下放到所有的葉子節點,進行色塊數量的暴力統計,但是pushdown函數確實能夠減少 update 的一些復雜度。

1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 6 #define Lson rt<<1,l,mid 7 #define Rson rt<<1|1,mid+1,r 8 const int M =8e3; 9 int tr[M<<2],lazy[M<<2],last; 10 int col[M<<1]; 11 void Pushdown(int rt){ 12 if(lazy[rt]!=-1){ 13 int tmp=lazy[rt]; 14 lazy[rt<<1]=lazy[rt<<1|1]=tmp; 15 tr[rt<<1]=tr[rt<<1|1]=tmp; 16 lazy[rt]=-1; 17 } 18 } 19 void update(int rt,int l,int r,int L,int R,int c){ //區間染色 20 if(L<=l&&r<=R){ 21 lazy[rt]=c; 22 tr[rt]=c; 23 return; 24 } 25 Pushdown(rt); 26 int mid=(l+r)>>1; 27 if(L<=mid)update(Lson,L,R,c); 28 if(R>mid)update(Rson,L,R,c); 29 } 30 void query(int rt,int l,int r){ //運用遞歸(類似于dfs),達到從左到右逐步查詢的效果,當遇到染色的點時,判斷其是否與前一個點相同,如果不同,就說明該顏色的區塊 31 if(l==r){ 32 if(tr[rt]!=last&&tr[rt]!=-1)col[tr[rt]]++; 33 last=tr[rt]; 34 return; 35 } 36 Pushdown(rt); 37 int mid=(l+r)>>1; 38 query(Lson); 39 query(Rson); 40 } 41 int main(){ 42 int n; 43 while(scanf("%d",&n)!=EOF){ 44 memset(tr,-1,sizeof(tr)); 45 memset(lazy,-1,sizeof(lazy)); 46 memset(col,0,sizeof(col)); 47 while(n--){ 48 int x,y,c; 49 scanf("%d%d%d",&x,&y,&c); 50 update(1,1,M,x+1,y,c); //由于本題是區間更新,所以不能直接更新[a,b]這個閉區間的所有點,而是對a~b的左開右閉或者左閉右開區間進行更新,類似于圖的將邊權轉化為點權 51 } 52 last=-1; 53 query(1,1,M); 54 for(int i=0;i<=M;i++){ 55 if(col[i])printf("%d %d\n",i,col[i]); 56 } 57 printf("\n"); 58 } 59 return 0; 60 }

?

?

2018-09-22

轉載于:https://www.cnblogs.com/00isok/p/9691282.html

總結

以上是生活随笔為你收集整理的ZOJ 1610 Count the Colors 【线段树】的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲欧美一区二区三区四区五区 | 福利视频一区二区三区 | 翔田千里一区二区三区av | 天天拍天天色 | 粗大挺进潘金莲身体在线播放 | 最新黄色在线 | 中文字幕成人av | 日韩欧美在线视频播放 | 亚洲国产看片 | 四虎成人精品永久免费av九九 | 日韩久久久久久久 | 国产三区精品 | 久久男人网 | 永久精品网站 | 久久久6| 国产高清色 | 丝袜诱惑一区二区 | 亚洲精品xxxx| 欧美人与性动交xxⅹxx | 中文字幕www | 图片区偷拍区小说区 | 96超碰在线| 激情综| 中文字幕日产乱码中 | 国产视频综合 | 亚洲色图 在线视频 | 日本美女久久久 | 成人在线免费网址 | 久久视频免费看 | 激情小说图片视频 | 欧美久久网 | 黄色长视频 | 午夜成人免费影院 | 国产精品精品软件视频 | 天天碰天天碰 | 日韩wwww| 凹凸精品一区二区三区 | 天天操天天射天天舔 | 91sao| 有码在线播放 | 国产福利精品在线观看 | 青青青国产视频 | 日本黄网在线观看 | 欧美日韩国产在线一区 | 国产一区二区免费 | 国产xxx69麻豆国语对白 | 热久久久 | 亚洲免费视频播放 | 亚洲色图36p | 国产成人在线视频播放 | 一女三黑人理论片在线 | 精品一区二区三区国产 | 色av吧 | 深夜精品福利 | 日韩精品免费播放 | 日韩丰满少妇无码内射 | 亚洲xxxxxx| 中文字幕一区二区三区在线不卡 | 久草aⅴ| 色涩涩 | 艳妇乳肉豪妇荡乳av无码福利 | 午夜肉体高潮免费毛片 | 亚洲一级色 | 黄色片免费观看 | 色哟哟黄色| 午夜精品一区二区三区在线播放 | 精品国产高清在线观看 | 极品色av | 国产网址在线 | 欧美1页| 欧美一区综合 | 亚洲欧美日韩精品久久亚洲区 | 成人免费a视频 | 成人动漫一区二区三区 | 各种含道具高h调教1v1男男 | 国产a免费| 国产精品99精品无码视亚 | 国产成人精品一区在线播放 | 亚洲精品一区二区三区四区五区 | xxxx国产精品| 天天插天天色 | 99久久免费国产精精品 | 国产精品色在线网站 | 亚色av| 欧美brazzers| 可以看av的网址 | 国产精品毛片va一区二区三区 | 爱爱一区二区三区 | 欧美大屁股熟妇bbbbbb | 欧美在线91 | 黄色一级视频免费观看 | 一级全黄裸体免费观看视频 | 国产精品视频麻豆 | 亚洲AV无码一区二区三区少妇 | xx视频在线 | 久久久888| 日韩成人中文字幕 | 欧美日韩一区二 | av激情网站 |