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

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

*/



/*    此為一牛人代碼 , 速度 非常快 !!!! 0rz.........

#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>
            欧美在线不卡视频| 男女激情视频一区| 日韩一级精品| 乱码第一页成人| 久久高清国产| 国产精品久久久久久久浪潮网站| 亚洲国产精品久久| 国语自产精品视频在线看8查询8| 亚洲一区二区三区四区五区黄| 亚洲伦理在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久se精品一区精品二区| 国产精品黄色在线观看| 99综合在线| 亚洲图片在线观看| 欧美网站在线观看| 99综合在线| 亚洲欧美网站| 国产日韩欧美不卡在线| 亚洲欧美在线高清| 欧美一区国产在线| 国产日韩精品在线观看| 久久国产福利国产秒拍| 久久蜜桃资源一区二区老牛 | 国产精品久久影院| 一区二区免费在线观看| 亚洲综合好骚| 国产一二三精品| 久久免费国产精品1| 欧美福利小视频| 亚洲精品老司机| 欧美另类变人与禽xxxxx| 99国产一区| 午夜久久久久| 韩日精品中文字幕| 欧美顶级大胆免费视频| 亚洲全黄一级网站| 亚洲欧美日韩国产| 国产一区二区三区高清在线观看 | 鲁大师成人一区二区三区| 精品av久久久久电影| 欧美电影美腿模特1979在线看| 亚洲人成啪啪网站| 午夜国产一区| 一区二区三区在线观看欧美| 欧美国产日韩精品| 中文在线资源观看网站视频免费不卡 | 久久亚洲春色中文字幕| 亚洲韩国精品一区| 国产精品国产a| 久久裸体视频| 日韩午夜三级在线| 久久久久国产精品www| 亚洲精品社区| 国产欧美精品一区aⅴ影院| 久久综合久久综合九色| 中文欧美在线视频| 欧美成人久久| 午夜电影亚洲| 亚洲精品欧美一区二区三区| 国产精品久久久久久久久搜平片 | 欧美日韩 国产精品| 午夜精品一区二区三区在线播放| 欧美激情成人在线视频| 欧美一区二区三区久久精品茉莉花| 在线观看欧美一区| 国产精品一区三区| 欧美精品一区二区在线观看 | 国产精品v欧美精品∨日韩| 久久精品视频导航| 亚洲天堂av高清| 亚洲福利av| 免费日韩av电影| 午夜老司机精品| 99国产一区| 亚洲娇小video精品| 久久久久久亚洲精品中文字幕| 一区二区三欧美| 亚洲韩国一区二区三区| 狠狠综合久久av一区二区小说| 国产精品第一页第二页第三页| 蜜臀99久久精品久久久久久软件 | 亚洲激情亚洲| 激情婷婷欧美| 国产自产在线视频一区| 国产精品夜夜夜| 欧美视频中文在线看| 欧美激情在线播放| 免费不卡视频| 美女脱光内衣内裤视频久久网站| 翔田千里一区二区| 亚洲影视九九影院在线观看| 日韩小视频在线观看| 亚洲人成网站在线观看播放| 欧美激情二区三区| 欧美激情一区| 亚洲国产精品一区二区www在线 | 亚洲一区二区精品视频| 一本色道久久综合精品竹菊| 一本色道久久88综合亚洲精品ⅰ| 亚洲另类在线视频| 一本色道久久88亚洲综合88| 一本大道久久精品懂色aⅴ| 日韩一区二区精品| 一本色道久久加勒比精品| 中文在线资源观看网站视频免费不卡 | 国产主播精品| 韩国精品久久久999| 国语自产精品视频在线看一大j8 | 一本大道久久精品懂色aⅴ| 在线视频精品一| 亚洲一区视频| 久久精品色图| 另类图片国产| 亚洲黄色av| 99v久久综合狠狠综合久久| 亚洲精品在线免费| 亚洲一区二区欧美日韩| 欧美一区二区三区在线免费观看| 久久成人亚洲| 欧美成人嫩草网站| 国产精品swag| 激情av一区| 99在线视频精品| 亚洲欧美另类中文字幕| 久久久青草婷婷精品综合日韩| 欧美1区3d| 中日韩高清电影网| 欧美中文在线免费| 欧美激情久久久| 国产精品制服诱惑| 在线观看久久av| 亚洲网站在线看| 久久五月天婷婷| 亚洲日本视频| 性xx色xx综合久久久xx| 欧美va亚洲va日韩∨a综合色| 欧美日韩一区二区三区高清| 国产一区二区三区四区三区四| 亚洲人人精品| 久久精品99| 日韩视频免费在线观看| 欧美一级欧美一级在线播放| 欧美精品不卡| 黄色成人av网站| 亚洲一区在线观看视频| 葵司免费一区二区三区四区五区| 亚洲蜜桃精久久久久久久| 久久久久天天天天| 国产精品区一区| 亚洲人屁股眼子交8| 久久久久久香蕉网| 一区二区三区四区国产精品| 久久伊人精品天天| 国产免费亚洲高清| 一区二区三区欧美在线观看| 免费观看一区| 亚洲在线1234| 欧美日韩国产bt| 亚洲高清资源| 久久久免费精品视频| 亚洲无人区一区| 欧美精品一卡二卡| 亚洲国产99| 久热这里只精品99re8久| 亚洲一品av免费观看| 欧美日韩国产综合视频在线观看中文 | 亚洲国产裸拍裸体视频在线观看乱了 | 欧美在线免费视频| 国产精品久久久久国产精品日日| 亚洲日本国产| 欧美国产精品一区| 久久综合国产精品| 影音先锋日韩有码| 久久亚洲一区二区三区四区| 亚洲尤物在线视频观看| 国产精品久久久久久模特 | 午夜精品久久久99热福利| 99精品欧美一区| 欧美日韩91| 中国成人黄色视屏| 亚洲另类一区二区| 欧美日韩午夜在线| 亚洲午夜精品一区二区三区他趣| 亚洲人成艺术| 欧美日韩国产欧| 在线一区观看| 亚洲婷婷在线| 国产欧美精品日韩区二区麻豆天美| 午夜精品影院在线观看| 亚洲欧美bt| 国产精品综合不卡av| 久久精品国产精品亚洲| 香蕉乱码成人久久天堂爱免费| 国产亚洲一区在线播放| 另类激情亚洲| 欧美韩国日本综合| 亚洲图色在线| 午夜精品久久久久影视| 黄网动漫久久久|