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

ACM___________________________

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

常用鏈接

留言簿(24)

隨筆分類(332)

隨筆檔案(182)

FRIENDS

搜索

積分與排名

最新隨筆

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

MiYu原創(chuàng), 轉(zhuǎn)帖請(qǐng)注明 : 轉(zhuǎn)載自 ______________白白の屋    

題目地址 :

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

題目描述:

Man Down

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 618    Accepted Submission(s): 197


Problem Description
The Game “Man Down 100 floors” is an famous and interesting game.You can enjoy the game from 
http://hi.baidu.com/abcdxyzk/blog/item/16398781b4f2a5d1bd3e1eed.html

We take a simplified version of this game. We have only two kinds of planks. One kind of the planks contains food and the other one contains nails. And if the man falls on the plank which contains food his energy will increase but if he falls on the plank which contains nails his energy will decrease. The man can only fall down vertically .We assume that the energy he can increase is unlimited and no borders exist on the left and the right.

First the man has total energy 100 and stands on the topmost plank of all. Then he can choose to go left or right to fall down. If he falls down from the position (Xi,Yi),he will fall onto the nearest plank which satisfies (xl <= xi <= xr)(xl is the leftmost position of the plank and xr is the rightmost).If no planks satisfies that, the man will fall onto the floor and he finishes his mission. But if the man’s energy is below or equal to 0 , he will die and the game is Over.

Now give you the height and position of all planks. And ask you whether the man can falls onto the floor successfully. If he can, try to calculate the maximum energy he can own when he is on the floor.(Assuming that the floor is infinite and its height is 0,and all the planks are located at different height).
 

Input
There are multiple test cases.

For each test case, The first line contains one integer N (2 <= N <= 100,000) representing the number of planks.

Then following N lines representing N planks, each line contain 4 integers (h,xl,xr,value)(h > 0, 0 < xl < xr < 100,000, -1000 <= value <= 1000), h represents the plank’s height, xl is the leftmost position of the plank and xr is the rightmost position. Value represents the energy the man will increase by( if value > 0) or decrease by( if value < 0) when he falls onto this plank.
 

Output
If the man can falls onto the floor successfully just output the maximum energy he can own when he is on the floor. But if the man can not fall down onto the floor anyway ,just output “-1”(not including the quote)
 

Sample Input
4 10 5 10 10 5 3 6 -100 4 7 11 20 2 2 1000 10
 

Sample Output
140
 

 /*

  題目描述:  

          不同高度處有不同的水平板,跳到該板會(huì)有血量變化v,

          問當(dāng)一個(gè)人從最高板開始,可以向左或者向右,

          豎直跳到下面的板,求下落到地面的最大血量,或者-1。

          線段樹+dp  

          需要用線段樹查詢得到每個(gè)板的兩個(gè)端點(diǎn)下落后會(huì)到哪個(gè)板;

          然后根據(jù)這個(gè)從最高的開始dp就可以了

          dp[i] = max ( dp[i], dp[i^].v )  // dp[i^] 代表能走到 i 的線段 

/* 


/*

Mail to   : miyubai@gamil.com

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

Author By : MiYu

Test      : 1

Complier  : g++ mingw32-3.4.2

Program   : HDU_3016

Doc Name  : Man Down

*/

//#pragma warning( disable:4789 )

#include <iostream>

#include <fstream>

#include <sstream>

#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>

#include <ctime>

using namespace std;

struct seg_tree {

    int id, left, right;

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

}seg[333333];

inline void creat ( int x, int y, int rt = 1 ) {

     seg[rt].left = x;

     seg[rt].right = y;

     //0 代表地面 其他的自然數(shù)代表各層的木板編號(hào)  -1 代表有多條線段覆蓋 

     seg[rt].id = 0;                  

     if ( x == y ) return ;

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

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

     creat ( mid + 1, y, rt << 1 | 1 );     

}

inline void modify ( int x, int y, int id, int rt = 1 ) {

     //找到了線段, 直接修改ID 覆蓋掉 

     if ( seg[rt].left == x && seg[rt].right == y ) {

         seg[rt].id = id;

         return;   

     }

     int LL = rt << 1, RR = rt << 1 | 1, mid = seg[rt].mid();

     // 前面沒有return掉, 那么這條線段肯定是被覆蓋的, 將它的標(biāo)記下傳后標(biāo)記為-1 

     if ( seg[rt].id != -1 ) {      

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

         seg[rt].id = -1;

     }      

     if ( y <= mid ) modify ( x, y, id, LL ); //分段修改 

     else if ( x > mid ) modify ( x, y, id, RR );

     else {

          modify ( x, mid, id, LL );

          modify ( mid + 1, y, id, RR );     

     }

}

inline int query ( int pos, int rt = 1 ) {   // 查詢 Pos 所在線段的 id  

    if ( seg[rt].id != -1 ) return seg[rt].id; //線段被覆蓋 直接返回 ID 

    int LL = rt << 1, RR = rt << 1 | 1, mid = seg[rt].mid();

    if ( pos <= mid ) return query ( pos, LL );             //分段查詢 

    else return query ( pos, RR );    

}

inline bool scan_d(int &num)  //整數(shù)輸入

{

        char in;bool IsN=false;

        in=getchar();

        if(in==EOF) return false;

        while(in!='-'&&(in<'0'||in>'9')) in=getchar();

        if(in=='-'){ IsN=true;num=0;}

        else num=in-'0';

        while(in=getchar(),in>='0'&&in<='9'){

                num*=10,num+=in-'0';

        }

        if(IsN) num=-num;

        return true;

}

struct Plank {

       int x,y,h,v,left,right; 

       //按高排序       

       friend bool operator < ( const Plank &a, const Plank &b ) {

              return a.h < b.h;

       }

}pk[100010];

int dp[100010];

int main ()

{

    int N, M;

    creat ( 1, 100000 );

    while ( scan_d ( N ) ) {

           M = -1;

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

                scan_d ( pk[i].h );scan_d ( pk[i].x );scan_d ( pk[i].y );scan_d ( pk[i].v );

                if ( pk[i].y > M ) M = pk[i].y;       // 記錄 區(qū)間最大值, 加速用的 

           }

           modify  ( 1, M, 0 );

           sort ( pk + 1, pk + N + 1 );               // 按高排序 

           memset ( dp, 0, sizeof ( dp ) );

           dp[N] = 100 + pk[N].v;

           // 自底向上 更新 線段, 記錄 每條線段 左右端點(diǎn)能到達(dá)的 線段 ID 

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

                int x = pk[i].left = query ( pk[i].x );

                int y = pk[i].right = query ( pk[i].y );

                modify ( pk[i].x, pk[i].y, i );

           }

           int res = -1;

           //自頂向下 DP    dp[i] = max ( dp[i], dp[i^].v )  

           // dp[i^] 代表能走到 i 的線段 

           for ( int i = N; i >= 1; -- i ) {   

               if ( dp[ pk[i].left ] < dp[i] + pk[ pk[i].left ].v )

                    dp[ pk[i].left ] = dp[i] + pk[ pk[i].left ].v;

               if ( dp[ pk[i].right ] < dp[i] + pk[ pk[i].right ].v )

                    dp[ pk[i].right ] = dp[i] + pk[ pk[i].right ].v; 

           } 

           printf ( "%d\n",dp[0] > 0 ? dp[0] : -1 );

    }

    return 0;

}


 

 

Feedback

# re: HDU 3016 HDOJ 3016 Memory Control ACM 3016 IN HDU  回復(fù)  更多評(píng)論   

2010-10-18 19:21 by の屋
Google前n個(gè)搜索結(jié)果都和你的相關(guān)

# re: HDU 3016 HDOJ 3016 Man Down ACM 3016 IN HDU  回復(fù)  更多評(píng)論   

2010-10-30 07:51 by MiYu
表明哥 有 成 牛 的資質(zhì) =. = 嘿嘿

# re: HDU 3016 HDOJ 3016 Man Down ACM 3016 IN HDU  回復(fù)  更多評(píng)論   

2013-07-13 21:50 by fegnchen
pascal 版的有嗎??
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            韩日欧美一区二区| 欧美α欧美αv大片| 国产欧美亚洲日本| 国产精品久久久一区麻豆最新章节 | 欧美四级剧情无删版影片| 黑人巨大精品欧美一区二区小视频| 欧美精品v国产精品v日韩精品 | 久久精品国产一区二区三| 亚洲影视在线播放| 久久久国产视频91| 男人插女人欧美| 欧美日韩一级黄| 国产欧美日本| 亚洲精品免费电影| 久久成人18免费网站| 亚洲一区二区日本| 久久人人爽人人爽爽久久| 欧美女同视频| 亚洲茄子视频| 欧美夫妇交换俱乐部在线观看| 在线亚洲自拍| 欧美午夜大胆人体| 一本色道久久99精品综合 | 免费观看30秒视频久久| 老色鬼精品视频在线观看播放| 欧美日韩综合在线| 国产精品综合色区在线观看| 91久久久精品| 欧美96在线丨欧| 久久riav二区三区| 国内精品久久久久伊人av| 亚洲视频一区二区在线观看| 欧美国产大片| 一本色道久久综合亚洲二区三区 | 久久久一区二区| 亚洲永久在线| 国产欧美 在线欧美| 午夜一区二区三区在线观看| 亚洲小视频在线| 国产精品视频内| 久久久久成人网| 久久全球大尺度高清视频| 精品成人一区二区| 亚洲国产综合在线看不卡| 女人天堂亚洲aⅴ在线观看| 久久国产精品99国产精| 国产老肥熟一区二区三区| 欧美一区视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 国产欧美日韩在线| 久久久久久久综合狠狠综合| 久久久精品999| 亚洲精品一区二区在线| 亚洲欧美日本在线| 一区二区久久久久| 性欧美长视频| 亚洲九九九在线观看| 欧美一区二区日韩一区二区| 亚洲一区国产| 91久久精品网| 久久精品国产亚洲高清剧情介绍| 亚洲视频欧洲视频| 欧美不卡视频一区发布| 久久女同精品一区二区| 国产精品久久网| 一区二区三区日韩欧美精品| 99精品视频免费全部在线| 美女脱光内衣内裤视频久久网站| 久久av一区| 国产欧美日韩一区二区三区在线| 亚洲免费激情| 亚洲天堂偷拍| 国产精品专区h在线观看| 亚洲先锋成人| 久久精品人人做人人爽电影蜜月| 国产亚洲精品bt天堂精选| 欧美一级在线视频| 久久久精品tv| 亚洲人在线视频| 欧美伦理视频网站| 午夜精品影院在线观看| 欧美日韩一区二区在线| 一区二区冒白浆视频| 欧美在线视频全部完| 在线观看日韩av先锋影音电影院 | 久久经典综合| 在线免费观看日本一区| 欧美激情一区二区三级高清视频| 亚洲精品影院在线观看| 欧美一区二区三区在线播放| aⅴ色国产欧美| 欧美一区二区黄| **欧美日韩vr在线| 国产农村妇女毛片精品久久莱园子 | 午夜精品网站| 欧美成人精品1314www| 亚洲永久免费精品| 亚洲精品1区2区| 国产欧美日韩综合| 欧美一区二区三区在| 在线一区二区日韩| 亚洲国产天堂久久综合网| 久久视频国产精品免费视频在线 | 国产欧美一区二区三区国产幕精品| 久久久蜜臀国产一区二区| 亚洲六月丁香色婷婷综合久久| 欧美国产日韩精品| 欧美成人午夜激情| 欧美电影在线观看| 理论片一区二区在线| 久久久久国内| 亚洲国产激情| 在线免费不卡视频| 激情欧美一区二区三区在线观看 | 久久久久久久999精品视频| 亚洲免费婷婷| 欧美诱惑福利视频| 久久久免费观看视频| 免费视频一区二区三区在线观看| 亚洲国产女人aaa毛片在线| 在线欧美日韩精品| 亚洲激情在线观看| 亚洲人精品午夜| 亚洲一区二区三区成人在线视频精品| 国产精品99久久99久久久二8| 在线视频日韩| 久久综合九九| 亚洲国产精品女人久久久| 一区二区高清在线| 久久九九99视频| 欧美日韩免费看| 一区二区亚洲精品| 亚洲欧美综合另类中字| 欧美激情一区二区三区在线视频观看| 欧美性大战久久久久久久蜜臀| 国产一级揄自揄精品视频| 亚洲三级网站| 可以看av的网站久久看| 亚洲欧美日韩一区二区在线| 欧美顶级少妇做爰| 影音先锋亚洲视频| 久久久久久久久久久一区| 99re8这里有精品热视频免费 | 午夜精品久久久久久久久久久久久| 欧美激情精品久久久久| 黄色精品一二区| 欧美一区二区三区久久精品茉莉花| 亚洲国产老妈| 葵司免费一区二区三区四区五区| 国产精品一区久久| 欧美一区二区三区在线视频| 日韩视频免费看| 女人天堂亚洲aⅴ在线观看| 免费毛片一区二区三区久久久| 狠狠综合久久av一区二区小说| 亚洲欧美日韩中文视频| 亚洲一级免费视频| 国产亚洲成av人在线观看导航 | 久久高清一区| 一区二区在线观看视频在线观看| 免费一区视频| 国产精品超碰97尤物18| 久久精品一区二区三区不卡牛牛| 久久久91精品国产| 亚洲人成毛片在线播放| 一二三区精品福利视频| 国产手机视频一区二区| 亚洲东热激情| 国产精品狠色婷| 久久人人精品| 国产精品入口夜色视频大尺度| 欧美在线中文字幕| 欧美日韩美女| 免费人成网站在线观看欧美高清| 欧美日韩国产美| 免费欧美在线视频| 国产一区免费视频| 亚洲人成在线观看| 亚洲高清视频一区| 久久9热精品视频| 亚洲一区免费网站| 欧美高清在线视频| 欧美激情影院| 91久久国产精品91久久性色| 欧美一区二区三区免费视| 亚洲一区中文| 国产精品免费一区豆花| 亚洲一区二区三区影院| 亚洲一区二区在线免费观看视频| 美女精品国产| 亚洲人成在线播放| 夜夜夜精品看看| 欧美特黄一区| 亚洲在线成人精品| 国产精品嫩草99av在线| 亚洲欧美日韩在线播放| 欧美一级片久久久久久久| 国产日本欧美视频| 蜜桃伊人久久| 正在播放亚洲|