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

ACM___________________________

______________白白の屋
posts - 182, comments - 102, trackbacks - 0, articles - 0
<2010年8月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234

常用鏈接

留言簿(24)

隨筆分類(332)

隨筆檔案(182)

FRIENDS

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

評論排行榜

MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋    

 

 

 

題目地址 :

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

題目描述 : 

Just a Hook

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3841    Accepted Submission(s): 1675


Problem Description
In the game of DotA, Pudge’s meat hook is actually the most horrible thing for most of the heroes. The hook is made up of several consecutive metallic sticks which are of the same length.



Now Pudge wants to do some operations on the hook.

Let us number the consecutive metallic sticks of the hook from 1 to N. For each operation, Pudge can change the consecutive metallic sticks, numbered from X to Y, into cupreous sticks, silver sticks or golden sticks.
The total value of the hook is calculated as the sum of values of N metallic sticks. More precisely, the value for each kind of stick is calculated as follows:

For each cupreous stick, the value is 1.
For each silver stick, the value is 2.
For each golden stick, the value is 3.

Pudge wants to know the total value of the hook after performing the operations.
You may consider the original hook is made up of cupreous sticks.
 

Input
The input consists of several test cases. The first line of the input is the number of the cases. There are no more than 10 cases.
For each case, the first line contains an integer N, 1<=N<=100,000, which is the number of the sticks of Pudge’s meat hook and the second line contains an integer Q, 0<=Q<=100,000, which is the number of the operations.
Next Q lines, each line contains three integers X, Y, 1<=X<=Y<=N, Z, 1<=Z<=3, which defines an operation: change the sticks numbered from X to Y into the metal kind Z, where Z=1 represents the cupreous kind, Z=2 represents the silver kind and Z=3 represents the golden kind.
 

Output
For each case, print a number in a line representing the total value of the hook after the operations. Use the format in the example.
 

Sample Input
1 10 2 1 5 2 5 9 3
 

Sample Output
Case 1: The total value of the hook is 24.
 

 

標準的線段樹,  成段更新 ,......     具體看 代碼 注釋 .

 

代碼如下 :

 /*

Coded By  : MiYu

Link      : http://www.cnblogs.com/MiYu  || http://www.shnenglu.com/MiYu

Author By : MiYu

Test      : 1

Program   : 1698

*/

//#pragma warning( disable:4789 )

#include <iostream>

#include <algorithm>

#include <string>

#include <set>

#include <map>

#include <utility>

#include <queue>

#include <stack>

#include <list>

#include <vector>

#include <cstdio>

#include <cstdlib>

#include <cstring>

#include <cmath>

using namespace std;


typedef struct seg_tree{

int left, right, col;

bool cov; //標記當前線段是否被覆蓋, 如果true, 表示這一段線段的值都為 col. false則相反

int mid (){ return (left + right) >> 1; }

}SEG;

SEG seg[300010];

void creat ( int beg, int end, int rt = 1 ){

seg[rt].left = beg;

seg[rt].right = end;

seg[rt].col =  1;

seg[rt].cov =  true;

if ( beg == end ) return;

int mid = seg[rt].mid();

creat ( beg, mid, rt << 1 );

creat ( mid + 1, end, ( rt << 1 ) + 1 );

}

void modify ( int beg, int end, int val, int rt = 1 ){

int LL = rt << 1;

int RR = ( rt << 1 ) + 1;

if ( seg[rt].left == beg && seg[rt].right == end ){ //線段被覆蓋, 標記 cov 為true  

seg[rt].cov = true;

seg[rt].col = val;

return ;

}

if ( seg[rt].cov ){ //如果線段曾經被覆蓋,  標記 false, 將col往下傳  

seg[rt].cov = false;

seg[LL].col = seg[RR].col = seg[rt].col;

seg[LL].cov = seg[RR].cov = true;

}

int mid = seg[rt].mid();

if ( end <= mid ){

modify ( beg, end, val, LL );

} else if ( beg > mid ) {

modify ( beg, end, val, RR );

} else {

modify ( beg, mid, val, LL );

modify ( mid + 1, end, val, RR );

}

}

int quy ( int beg, int end, int rt = 1 ){

if ( seg[rt].cov ){  // 線段如果是被覆蓋的 , 直接返回這一段區間的值

return ( seg[rt].right - seg[rt].left + 1 ) * seg[rt].col;

}

int mid = seg[rt].mid();

return quy ( beg, mid, rt << 1 ) + quy ( mid + 1, end, ( rt << 1 ) + 1 );

}


int main ()

{

int T, ca = 1;

scanf ( "%d", &T );

while ( T -- ){

int N;

scanf ( "%d", &N );

creat ( 1, N );

int M;

scanf ( "%d", &M );

for ( int i = 1; i <= M; ++ i ){

int beg, end, val;

scanf ( "%d%d%d", &beg, &end, &val );

modify ( beg, end, val );

}

printf ( "Case %d: The total value of the hook is %d.\n", ca++,quy( 1, N ) );

}

    return 0;

}


/*

1

10

2

1 5 2

5 9 3

*/



/*    此為一牛人代碼 , 速度 非常快 !!!!?。埃颍?/span>

#include<stdio.h>

int a[100001][3],c[100001];

int main()

{

    int t,i,j,n,m,sum,v,w=1;

    scanf("%d",&t);

    while(t--&&scanf("%d %d",&n,&m))

    {

        sum=0;

        for(i=1;i<=m;i++)

        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);

        for(i=1;i<=n;i++)

        {

            v=1;

            for(j=m;j>=1;j--)

            {

                if(a[j][0]<=i&&a[j][1]>=i)

                {

                    v=a[j][2];

                    break;

                }

            }

            sum+=v;

        }

        printf("Case %d: The total value of the hook is %d.\n",w++,sum);

    }

}



*/

 

Feedback

# re: HDOJ 1698 HDU 1698 Just a Hook ACM 1698 IN HDU[未登錄]  回復  更多評論   

2010-09-18 11:18 by bb
下面的代碼只是剛好數據不能卡把?復雜度O(n*m)~

# re: HDOJ 1698 HDU 1698 Just a Hook ACM 1698 IN HDU  回復  更多評論   

2010-09-18 11:42 by MiYu
Accepted 1698 437MS 4300K 2117 B C++
這是 線段樹 的 AC 判定,
Accepted 1698 218MS 1360K 630 B C++
這是后面方法的 AC 判定, 快了 一倍

# re: HDOJ 1698 HDU 1698 Just a Hook ACM 1698 IN HDU[未登錄]  回復  更多評論   

2010-09-18 17:39 by bb
不是呀,只是OJ數據沒卡到這方法~~

# re: HDOJ 1698 HDU 1698 Just a Hook ACM 1698 IN HDU  回復  更多評論   

2010-10-30 07:56 by MiYu
我覺得 哪方法 很牛B =. =
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久.com| 欧美一区二区性| 欧美揉bbbbb揉bbbbb| 亚洲精品在线观| 亚洲欧美日韩精品在线| 国产美女精品| 久久夜色精品国产| 亚洲精品国产精品久久清纯直播| 一区二区欧美在线观看| 国产精品久久毛片a| 久久久午夜精品| 91久久精品视频| 欧美在线3区| 亚洲精品少妇网址| 国产免费成人av| 欧美国产日韩亚洲一区| 午夜精品理论片| 亚洲国产精品第一区二区| 亚洲欧美文学| 亚洲日本在线观看| 国产日韩专区| 欧美日韩高清一区| 久久精品亚洲精品| 中国成人黄色视屏| 欧美激情一区二区三区在线视频| 亚洲一区二区三区免费视频| 一区二区亚洲精品| 国产精品麻豆va在线播放| 久久网站免费| 亚洲欧美中文在线视频| 狠狠爱综合网| 欧美电影电视剧在线观看| 亚洲欧美一区二区原创| 亚洲激情影视| 毛片基地黄久久久久久天堂| 亚洲一区二区三区欧美| 亚洲日本电影在线| 狠狠狠色丁香婷婷综合激情| 欧美色欧美亚洲另类二区| 久久蜜桃精品| 西西人体一区二区| 日韩午夜精品视频| 亚洲第一在线综合网站| 久久国产精品第一页| 亚洲一区3d动漫同人无遮挡| 亚洲精品在线免费| 精品av久久久久电影| 国产麻豆精品视频| 国产精品久久久久久久久免费| 欧美电影免费观看大全| 久久亚洲综合色| 欧美一区二区三区在线播放| 亚洲视频久久| 夜夜嗨av一区二区三区四区| 亚洲高清在线精品| 欧美99久久| 蜜桃久久av一区| 久久婷婷久久| 久久五月天婷婷| 久久精品人人做人人爽| 欧美在线看片a免费观看| 亚洲欧美激情一区二区| 亚洲综合色激情五月| 亚洲宅男天堂在线观看无病毒| 亚洲人体1000| 一本久久a久久精品亚洲| 亚洲日本欧美| 夜夜精品视频一区二区| 一区二区三区日韩在线观看| 日韩视频免费在线观看| 一本色道久久综合亚洲精品高清 | 欧美一级久久久| 亚洲免费在线观看| 亚洲一区二区3| 亚洲欧美一区二区激情| 午夜精品久久久久久久久久久久久| 亚洲天堂黄色| 亚洲欧美激情诱惑| 久久国产88| 老色批av在线精品| 欧美二区视频| 亚洲精品久久久一区二区三区| 亚洲国产你懂的| 99re8这里有精品热视频免费| 一区二区三区高清在线| 亚洲一二三四区| 久久精品国产清高在天天线| 久久久青草青青国产亚洲免观| 美女日韩欧美| 欧美日韩中国免费专区在线看| 国产精品日本精品| 国内精品美女av在线播放| 亚洲成人自拍视频| 一本色道精品久久一区二区三区| 国产精品99久久久久久久久久久久| 亚洲欧洲av一区二区| 久久亚洲综合色| 亚洲黄页视频免费观看| 一本色道久久综合亚洲精品不卡 | 香蕉国产精品偷在线观看不卡| 久久国产精品久久久| 欧美成人自拍视频| 亚洲视频精品| 久久久另类综合| 欧美日韩另类一区| 国产视频一区三区| 亚洲精品日韩激情在线电影| 亚洲欧美日韩在线| 欧美暴力喷水在线| 亚洲深夜福利| 久久影视精品| 国产精品系列在线播放| 亚洲高清在线观看一区| 中文国产成人精品| 蜜桃av噜噜一区二区三区| 亚洲毛片在线看| 久久精品最新地址| 欧美午夜精品久久久久久人妖| 激情欧美亚洲| 欧美一二三区在线观看| 亚洲欧洲在线观看| 欧美诱惑福利视频| 国产精品videosex极品| 在线精品国精品国产尤物884a| 亚洲一区二区动漫| 欧美激情精品久久久久久黑人| 亚洲一区二区三区三| 欧美搞黄网站| 狠狠综合久久av一区二区小说 | 欧美日韩一区二区在线视频| 激情国产一区| 欧美一级理论性理论a| 亚洲国产成人av在线| 久久精品国产999大香线蕉| 国产精品高清免费在线观看| 亚洲日本成人| 美女被久久久| 久久国产精品久久国产精品| 国产精品久久久久77777| 亚洲美女精品成人在线视频| 欧美**人妖| 久久精品99无色码中文字幕| 国产麻豆91精品| 午夜国产一区| 亚洲一二三区精品| 欧美日韩妖精视频| 9l国产精品久久久久麻豆| 免费在线国产精品| 久久精品一区二区| 国产综合欧美在线看| 久久九九有精品国产23| 亚洲自拍电影| 国产精品久久久一区麻豆最新章节| 夜夜爽www精品| 亚洲欧洲一区二区三区久久| 久久婷婷久久一区二区三区| 韩国一区电影| 久久久噜噜噜久久| 久久成人综合视频| 国产亚洲aⅴaaaaaa毛片| 亚洲欧美中文另类| 亚洲在线视频网站| 国产精品夜夜嗨| 久久精品首页| 欧美伊久线香蕉线新在线| 国产亚洲精品一区二区| 久久精品天堂| 麻豆精品视频| 亚洲精品视频啊美女在线直播| 欧美激情在线免费观看| 欧美激情第六页| 在线一区二区三区四区五区| 一区二区精品在线| 国产精品系列在线播放| 久久精品一区蜜桃臀影院| 欧美一级二区| 在线免费观看日韩欧美| 亚洲风情亚aⅴ在线发布| 欧美激情亚洲综合一区| 亚洲一区国产视频| 亚洲欧美国产日韩中文字幕| 激情小说亚洲一区| 亚洲国产欧美不卡在线观看 | 日韩午夜在线视频| 亚洲免费观看高清在线观看| 国产精品美女一区二区| 久久免费国产| 欧美福利一区二区三区| 亚洲综合成人婷婷小说| 欧美在线国产| 9人人澡人人爽人人精品| 亚洲一区二区三区中文字幕| 狠狠色丁香婷综合久久| 亚洲国产精品va在线看黑人| 欧美午夜片欧美片在线观看| 久久久国产精品一区二区三区| 毛片一区二区| 亚洲欧美制服另类日韩| 毛片一区二区| 性久久久久久久|