青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

A Za, A Za, Fighting...

堅信:勤能補拙

PKU 2777 Count Color

問題:
http://acm.pku.edu.cn/JudgeOnline/problem?id=2777

思路:
線段樹的典型題

參考:
http://blog.csdn.net/xiaofengsheng/archive/2009/03/03/3953265.aspx

代碼:
  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<string.h>
  4 #define MAX_N 100001
  5 #define MAX_T 31
  6 #define LEFT(i) (i<<1)
  7 #define RIGHT(i) ((i<<1)+1)
  8 int L, T, O;
  9 struct Node {
 10     int left, right;
 11     int color;
 12 };
 13 struct Node nodes[MAX_N*3];
 14 int rt, visited[MAX_T];
 15 
 16 void
 17 build(int begin, int end, int step)
 18 {
 19     int mid;
 20     nodes[step].left = begin;
 21     nodes[step].right = end;
 22     nodes[step].color = 1;
 23     if(begin == end)
 24         return;
 25     mid = (begin+end)>>1;
 26     build(begin, mid, LEFT(step));
 27     build(mid+1, end, RIGHT(step));
 28 }
 29 
 30 void
 31 insert(int begin, int end, int color, int step)
 32 {
 33     int mid;
 34     if(nodes[step].left==begin && nodes[step].right==end) {
 35         nodes[step].color = color;
 36         return;
 37     };
 38     if(nodes[step].color != -1) {
 39         nodes[LEFT(step)].color = nodes[RIGHT(step)].color = nodes[step].color;
 40         nodes[step].color = -1/* mixed color */
 41     }
 42     mid = (nodes[step].left+nodes[step].right)>>1;
 43     if(begin > mid) 
 44         insert(begin, end, color, RIGHT(step));
 45     else if(end<=mid)
 46         insert(begin, end, color, LEFT(step));
 47     else {
 48         insert(begin, mid, color, LEFT(step));
 49         insert(mid+1, end, color, RIGHT(step));
 50     }
 51 }
 52 
 53 void
 54 calculate(int begin, int end, int step)
 55 {
 56     if(nodes[step].color != -1) {
 57         if(!visited[nodes[step].color]) {
 58             visited[nodes[step].color] = 1;
 59             ++rt;
 60         }
 61         return;
 62     }
 63     int mid = (nodes[step].left+nodes[step].right)>>1;
 64     if(mid < begin)
 65         calculate(begin, end, RIGHT(step));
 66     else if(mid >= end)
 67         calculate(begin, end, LEFT(step));
 68     else {
 69         calculate(begin, mid, LEFT(step));
 70         calculate(mid+1, end, RIGHT(step));
 71     }
 72 }
 73 
 74 int
 75 main(int argc, char **argv)
 76 {
 77     int i, a, b, c;
 78     char ops[2];
 79     while(scanf("%d %d %d"&L, &T, &O) != EOF) {
 80         build(1, L, 1);
 81         for(i=1; i<=O; i++) {
 82             scanf("%s", ops);
 83             if(ops[0== 'C') {
 84                 scanf("%d %d %d"&a, &b, &c);
 85                 if(a <= b)
 86                     insert(a, b, c, 1);
 87                 else
 88                     insert(b, a, c, 1);
 89             } else if(ops[0== 'P') {
 90                 scanf("%d %d"&a, &b);
 91                 rt = 0;
 92                 memset(visited, 0sizeof(visited));
 93                 if(a <= b)
 94                     calculate(a, b, 1);
 95                 else
 96                     calculate(b, a, 1);
 97                 printf("%d\n", rt);
 98             }
 99         }
100     }
101 }

posted on 2010-09-16 10:57 simplyzhao 閱讀(270) 評論(0)  編輯 收藏 引用 所屬分類: E_數據結構

導航

<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            99国产一区二区三精品乱码| 亚洲国产成人av在线| 欧美日韩精品综合| 欧美性大战久久久久久久| 亚洲韩国青草视频| 欧美激情第三页| 久久婷婷av| 亚洲经典在线看| 亚洲国产婷婷香蕉久久久久久99| 欧美xxxx在线观看| 国产欧美亚洲一区| 欧美一区二区三区四区夜夜大片| 国产在线精品二区| 久久先锋影音| 欧美三级视频在线观看| 久久av一区| 欧美激情一区二区在线| 亚洲自拍都市欧美小说| 久久久精品视频成人| 日韩视频不卡中文| 亚洲欧美资源在线| 最新日韩av| 久久av免费一区| 999亚洲国产精| 久久精品国产亚洲高清剧情介绍| 精品二区视频| 国产精品免费区二区三区观看| 久久激情久久| 一区电影在线观看| 久久久久久一区二区三区| 一区二区免费在线观看| 久久久久久夜| 模特精品在线| 国内精品久久久久影院色| 一本久久a久久免费精品不卡| 性视频1819p久久| 久久色在线观看| 亚洲在线一区二区| 久久精品亚洲热| 久久久欧美精品sm网站| 亚洲成色最大综合在线| 久久久www成人免费毛片麻豆 | 久久综合狠狠综合久久激情| 久久一区二区三区四区| 欧美综合国产| 在线观看三级视频欧美| 麻豆精品视频在线| 亚洲精品日本| 性亚洲最疯狂xxxx高清| 精品成人国产| 欧美人妖另类| 亚洲视频一区在线| 久久亚洲电影| 一区二区三区精品视频| 国产乱码精品一区二区三区忘忧草 | 久久精品亚洲一区二区| 久久免费视频网站| 一区在线播放视频| 欧美欧美午夜aⅴ在线观看| 99天天综合性| 欧美成人乱码一区二区三区| 一区二区三区色| 亚洲国产精品一区制服丝袜| 欧美日韩国产系列| 久久久亚洲影院你懂的| 亚洲国产精品久久久久秋霞蜜臀| 欧美激情视频在线播放 | 欧美日韩在线三级| 亚洲免费视频成人| 久久亚洲欧美| 欧美伊人影院| 一区二区欧美日韩视频| 亚洲国产欧美在线人成| 亚洲午夜一区二区| 亚洲精品欧美日韩专区| 国内成人精品2018免费看| 国产乱理伦片在线观看夜一区| 麻豆亚洲精品| 亚洲欧美日韩精品久久| 亚洲大片在线| 永久免费视频成人| 在线视频观看日韩| 精品电影在线观看| 国产一区视频观看| 国内视频精品| 在线日韩一区二区| 亚洲人成人一区二区三区| 亚洲高清电影| 亚洲精品资源| 亚洲女人天堂成人av在线| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美影院成人| 亚洲欧美怡红院| 亚洲欧美国产精品va在线观看| 欧美高清一区二区| 欧美二区在线观看| 国产精品区免费视频| 韩日精品在线| 99在线观看免费视频精品观看| 亚洲天堂成人在线观看| 亚洲一区在线免费| 欧美一区二区三区久久精品| 久久久蜜桃精品| 亚洲免费观看在线观看| 一区二区三区欧美日韩| 久久成人精品视频| 欧美日韩国产综合网| 国产一区二区| 亚洲影视在线播放| 欧美粗暴jizz性欧美20| 亚洲综合色激情五月| 欧美激情小视频| 在线观看免费视频综合| 欧美一区永久视频免费观看| 亚洲成在人线av| 久久电影一区| 国产亚洲精品久久久久久| 一本色道久久综合亚洲精品按摩 | 99精品国产在热久久下载| 欧美一区高清| 91久久精品一区二区别| 一区二区三区精品国产| 老司机精品视频网站| 国产日韩在线一区二区三区| 99热免费精品在线观看| 欧美黄色精品| 欧美激情中文字幕一区二区| …久久精品99久久香蕉国产| 久久久福利视频| 久久久亚洲高清| 亚洲国产另类久久久精品极度| 国产日韩亚洲欧美| 久久久欧美精品sm网站| 亚洲欧美日韩直播| 国产日韩av高清| 亚洲第一在线| 欧美日韩免费在线| 欧美一区激情| 欧美成人激情视频免费观看| 欧美成年网站| 亚洲一区亚洲| 久久激情网站| 99v久久综合狠狠综合久久| 99精品国产热久久91蜜凸| 国产欧美日韩视频一区二区| 久久亚洲不卡| 国产精品成人一区| 欧美99在线视频观看| 欧美日本不卡| 两个人的视频www国产精品| 欧美chengren| 久久久www成人免费毛片麻豆| 久久精品91| 欧美国产日韩一区| 免费观看在线综合色| 欧美日韩成人综合| 国产一区二区三区奇米久涩| 亚洲啪啪91| 亚洲精品一区二| 久久aⅴ国产紧身牛仔裤| 亚洲激情国产精品| 欧美一区二区福利在线| 亚洲制服欧美中文字幕中文字幕| 久久综合国产精品| 国产精品视频最多的网站| 亚洲精品日韩久久| 亚洲毛片网站| 欧美日韩国产精品一区| 久久精品亚洲| 国内精品久久久久久久影视蜜臀 | 国产亚洲激情| 一区二区日韩免费看| 亚洲视频第一页| 国产精品第一区| 欧美亚洲视频在线观看| 久久久久久亚洲综合影院红桃| 午夜精品久久| 久久综合一区二区三区| 亚洲国产欧美精品| 久久久久免费观看| 欧美不卡视频| 欧美风情在线观看| 日韩一级裸体免费视频| 亚洲欧美综合v| 精品福利电影| 欧美日韩一区二区视频在线| 亚洲视频电影在线| 男女激情视频一区| 亚洲欧美精品在线| 亚洲成色www久久网站| 欧美性大战久久久久久久| 久久久久久亚洲精品杨幂换脸| 国产视频自拍一区| 久久免费精品视频| 亚洲高清精品中出| 国产亚洲第一区| 欧美视频在线一区| 亚洲国产一二三| 久久青草福利网站| 午夜激情综合网|