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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

线段树专辑——hdu 1698 Just a Hook

發布時間:2024/10/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线段树专辑——hdu 1698 Just a Hook 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://acm.hdu.edu.cn/showproblem.php?pid=1698

這是一個區間染色的問題,對于區間染色問題,通常的方法是在線段樹中定義一個cover域,當cover的值為-1的時候,則表示這個線段的覆蓋不是有一個顏色染成的,其中包含了多種顏色,而當cover為一個非-1的值時,例如cover==1時表示該線段是有第一種顏色染成的。 對于這題,由于是成段成段的在跟新線段樹,我們自然不能簡單的遞歸到根節點再進行處理,這樣毫無疑問是要超時的,所以我們只能成段的跟新。

那么,如何做到成段的跟新呢?這里需要運用一種叫著lazy的思想,lazy顧名思義便是懶惰的意思。該思想大概的意思便是:假設要跟新區間[a,b],那么當我們找到區間[a,b]時,便不再往下進行遞歸,而是在該區間上標記上一個lazy,表示這里有信息需要向下傳遞。那么當我們需要跟新區間[a,b/2]時,我們便一定會從區間[a,b]經過,經過的過程中,我們發現區間[a,b]有信息需要向下傳遞,此時便將區間[a,b]的信息傳遞給其子區間。這樣在必要的時候才一層一層的傳遞,便節約了很多時間。具體見程序吧,很清晰的

View Code 1 #include<iostream>
2 #include<string>
3 using namespace std;
4
5 struct node
6 {
7 int l;
8 int r;
9 int cover;
10 };
11
12 node tree[500000];
13 int n,m;
14
15 void build(int i,int l,int r)
16 {
17 tree[i].l=l;
18 tree[i].r=r;
19 tree[i].cover=1; //初始顏色為1
20 if(l==r)
21 return;
22 int mid=(l+r)/2;
23 build(2*i,l,mid);
24 build(2*i+1,mid+1,r);
25 }
26
27 void updata(int i,int l,int r,int w)
28 {
29 if(tree[i].l>r || tree[i].r<l)
30 return;
31 if(tree[i].l>=l && tree[i].r<=r)
32 {
33 tree[i].cover=w; //cover表示lazy標記,當cover的值不為-1的時候,就說明該區間有信息需要向下傳遞
34 return;
35 }
36 if(tree[i].cover!=-1) //該區間有信息需要傳遞
37 {
38 tree[2*i].cover=tree[2*i+1].cover=tree[i].cover; //將其標記傳遞給子區間
39 tree[i].cover=-1; //同時自身取消標記
40 }
41 updata(2*i,l,r,w);
42 updata(2*i+1,l,r,w);
43 }
44
45 int ans;
46 void find(int i)
47 {
48 if(tree[i].cover!=-1) //單色區間,直接取其值
49 {
50 ans+=(tree[i].r-tree[i].l+1)*tree[i].cover;
51 return;
52 }
53 if(tree[i].l==tree[i].r)
54 return;
55 find(2*i); //非單色區間,則向下遞歸
56 find(2*i+1);
57 }
58
59 int main()
60 {
61 int cas,i,a,b,c,o=1;
62 freopen("in.txt","r",stdin);
63 scanf("%d",&cas);
64 while(cas--)
65 {
66 scanf("%d%d",&n,&m);
67 build(1,1,n);
68 for(i=0;i<m;i++)
69 {
70 scanf("%d%d%d",&a,&b,&c);
71 updata(1,a,b,c);
72 }
73 ans=0;
74 find(1);
75 printf("Case %d: The total value of the hook is %d.\n",o++,ans);
76 }
77 return 0;
78 }

?

轉載于:https://www.cnblogs.com/ka200812/archive/2011/11/09/2242248.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的线段树专辑——hdu 1698 Just a Hook的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美bbbbbbbbbbbb精品 | 精品视频在线观看免费 | 免费看黄色一级片 | 成年人av| 中文字幕在线免费视频 | 国产精品久久久久久久9999 | 国产中文字字幕乱码无限 | 国产美女一级视频 | 美女啪啪国产 | 一级黄色免费大片 | 国产精品三区在线观看 | 日日色综合 | 国产麻豆成人传媒免费观看 | 日av中文字幕| 国产伦精品一区二区三区高清版 | 26uuu精品一区二区在线观看 | 九九看片| 一级黄色片免费观看 | 日本国产高清 | 精品视频免费 | 中文字幕在线观看网 | 日本人视频69式jzzij | www.尤物 | 日韩av看片| 日韩一区二区三区在线免费观看 | 久久影院中文字幕 | 新91在线 | 疯狂做爰的爽文多肉小说王爷 | 中文字幕在线观看免费视频 | 国产精品乱码 | 青青草狠狠干 | 国产a v一区二区三区 | 国产精品午夜福利视频234区 | 免费av观看网站 | 亚洲人性生活视频 | 一级特级片 | 长河落日电视连续剧免费观看01 | 开心激情播播 | 亚洲欧洲综合 | av网站有哪些 | 超碰免费在线观看 | 特级西西www444人体聚色 | 精品国产精品国产偷麻豆 | 国产113页 | 国产精品污www一区二区三区 | 黄色av片三级三级三级免费看 | 欧美一级片网址 | av片在线免费看 | 亚洲三级在线播放 | 日日干夜 | 亚洲精品香蕉 | 啪啪视屏 | 国产欧美日韩综合精品一区二区 | 欧美性猛交 xxxx | 成人免费观看cn | 欧美变态口味重另类 | 羞羞漫画在线播放 | 久夜精品| 我爱我色成人网 | 日韩精品视频在线观看免费 | 夫妻黄色片 | 91爱爱网站 | 99国产精品久久久久久久久久久 | 在线不欧美 | 自拍偷拍欧美 | 日韩av在线播放一区 | 射婷婷| 国产午夜电影 | 私密视频在线观看 | 欧美精品免费一区二区三区 | 亚洲阿v天堂 | 亚洲 欧美 日韩系列 | 国产欧美精品aaaaaa片 | 男人添女人下部高潮视频 | 国语对白做受欧美 | 国产一级片一区 | 特级西西444www高清大胆 | 免播放器av | 亚洲欧美日韩精品久久亚洲区 | 久久免费的精品国产v∧ | 国产精品蜜臀 | 欧美在线观看视频一区 | 精品动漫一区二区三区的观看方式 | 97精品人妻一区二区三区 | 久久精品久久精品 | 五月开心激情 | 午夜国产一区二区三区 | 国产三级三级在线观看 | 午夜激情福利 | jzzijzzij亚洲成熟少妇 | 91麻豆精品国产91久久久更新时间 | 亚洲成av人片在线观看 | 日欧视频| av第一福利大全导航 | 亚洲a一区 | 尤物在线观看 | 999热精品| 日韩欧美综合 | 欧美亚洲在线观看 |