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

糯米

TI DaVinci, gstreamer, ffmpeg
隨筆 - 167, 文章 - 0, 評(píng)論 - 47, 引用 - 0
數(shù)據(jù)加載中……

POJ 2374 Fence Obstacle Course 線段樹+動(dòng)態(tài)規(guī)劃

思路:

用線段樹維護(hù)所有線段的分布。
新增加一個(gè)fence的時(shí)候,將fence的范圍[a, b]插入線段樹,節(jié)點(diǎn)的值為fence的編號(hào),即高度。
那么fence上的某一點(diǎn)就是樹的葉子了,從葉子往上一直到根節(jié)點(diǎn)的路徑中節(jié)點(diǎn)的最大值,
就是從fence上的這一點(diǎn)垂直掉下去后,碰到的一個(gè)fence了。

這樣,我們就可以在O(lgN)時(shí)間內(nèi)知道,從一個(gè)fence的端點(diǎn)掉下去會(huì)碰到哪個(gè)fence了。
不然從后往前一個(gè)個(gè)找就是O(N)復(fù)雜度了。同時(shí)N也很大,必然超時(shí)。

同時(shí)也可以發(fā)現(xiàn),一個(gè)fence保存兩個(gè)值用作動(dòng)態(tài)規(guī)劃就好了,向左、右走之后,掉到其他fence上面,然后回到基地所用的最短路徑。
推的方法很簡(jiǎn)單,掉到其他fence上面之后,看下是向左走距離短還是向右走距離短。就行了。

這個(gè)代碼跑到400ms。

#include <stdio.h>

#define MAX_N 50032
#define MAX_R 100032 

struct {
    
int a, b;
}
 dp[MAX_N], fences[MAX_N];
int N, S, tree[MAX_R*16];

__inline 
int max(int a, int b)
{
    
return a > b ? a : b;
}


__inline 
int abs(int a)
{
    
return a > 0 ? a : -a;
}


__inline 
int min(int a, int b)
{
    
return a < b ? a : b;
}


void insert(int idx, int start, int end, int left, int right, int val)
{
    
int mid;

    
if (start == left && right == end) {
        tree[idx] 
= val;
        
return ;
    }

    mid 
= (start + end) / 2;
    
if (right <= mid) 
        insert(idx
*2, start, mid, left, right, val);
    
else if (left > mid)
        insert(idx
*2+1, mid + 1, end, left, right, val);
    
else {
        insert(idx
*2, start, mid, left, mid, val);
        insert(idx
*2+1, mid + 1, end, mid + 1, right, val);
    }

}


int query(int idx, int start, int end, int pos)
{
    
int val, mid;

    
if (start == pos && end == pos) 
        
return tree[idx];
    mid 
= (start + end) / 2;
    
if (pos <= mid)
        val 
= query(idx*2, start, mid, pos);
    
else
        val 
= query(idx*2+1, mid + 1, end, pos);
    
return max(val, tree[idx]);
}


__inline 
int calc_min(int i, int pos)
{
    
if (!i)
        
return abs(pos - MAX_R);
    
return min(pos - fences[i].a + dp[i].a, fences[i].b - pos + dp[i].b);
}


int main()
{
    
int i;

    freopen(
"e:\\test\\in.txt""r", stdin);

    scanf(
"%d%d"&N, &S);
    S 
+= MAX_R;
    
for (i = 1; i <= N; i++{
        scanf(
"%d%d"&fences[i].a, &fences[i].b);
        fences[i].a 
+= MAX_R;
        fences[i].b 
+= MAX_R;
        dp[i].a 
= calc_min(query(10, MAX_R*2, fences[i].a), fences[i].a);
        dp[i].b 
= calc_min(query(10, MAX_R*2, fences[i].b), fences[i].b);
        insert(
10, MAX_R*2, fences[i].a, fences[i].b, i);
    }

    printf(    
"%d\n"
            min(S 
- fences[N].a + dp[N].a, fences[N].b - S + dp[N].b)
            );

    
return 0;
}

posted on 2010-03-08 18:21 糯米 閱讀(1388) 評(píng)論(2)  編輯 收藏 引用 所屬分類: POJ

評(píng)論

# re: POJ 2374 Fence Obstacle Course 線段樹+動(dòng)態(tài)規(guī)劃  回復(fù)  更多評(píng)論   

知道為什么要用線段樹,我直接開辟一個(gè)數(shù)組,每次將第i個(gè)fense的區(qū)間標(biāo)記為i,好像也能得到正確的結(jié)果,可是會(huì)運(yùn)行超時(shí),不知道為什么?
#include "stdafx.h"
#include <stdio.h>

#define MAX_N 50032
#define MAX_R 100032

struct {
int a, b;
} dp[MAX_N], fences[MAX_N];
int N, S;

int seg[MAX_R*2];

__inline int max(int a, int b)
{
return a > b ? a : b;
}

__inline int abs(int a)
{
return a > 0 ? a : -a;
}

__inline int min(int a, int b)
{
return a < b ? a : b;
}

__inline int calc_min(int i, int pos)
{
if (!i)
return abs(pos - MAX_R);
return min(pos - fences[i].a + dp[i].a, fences[i].b - pos + dp[i].b);
}


int main()
{
//for(int k=0;k<MAX_R*2;++k)
//{
// seg[k] = 0;
//}

int i;

freopen("e:\\test\\in.txt", "r", stdin);

scanf("%d%d", &N, &S);
S += MAX_R;
for (i = 1; i <= N; i++) {
scanf("%d%d", &fences[i].a, &fences[i].b);
fences[i].a += MAX_R;
fences[i].b += MAX_R;
dp[i].a = calc_min( seg[ fences[i].a ], fences[i].a);
dp[i].b = calc_min( seg[ fences[i].b ], fences[i].b);

for (int j=fences[i].a;j<=fences[i].b;++j)
{
seg[j] = i;
}

}
printf( "%d\n",
min(S - fences[N].a + dp[N].a, fences[N].b - S + dp[N].b)
);

return 0;
}
2012-01-29 01:28 | CWQBUPT

# re: POJ 2374 Fence Obstacle Course 線段樹+動(dòng)態(tài)規(guī)劃  回復(fù)  更多評(píng)論   

@CWQBUPT
因?yàn)槟闳鄙倭硕值倪^程,線段樹查找O(logn),而你的查找O(n)
2016-05-07 21:20 | hez2010
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美日韩网址| 亚洲色图在线视频| 亚洲一区二区网站| 亚洲精品护士| 老司机一区二区三区| 久久国产成人| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ入口 | 噜噜噜91成人网| 午夜精品理论片| 欧美日韩免费一区| 亚洲日本欧美日韩高观看| 国产真实乱子伦精品视频| 一区二区三区不卡视频在线观看| 99爱精品视频| 欧美a级理论片| 欧美福利在线观看| 1024成人网色www| 久久成人18免费观看| 久久99伊人| 国产精品午夜久久| 亚洲永久精品国产| 性色av香蕉一区二区| 国产精品久久久亚洲一区| 一本一本久久| 亚洲欧美激情一区二区| 欧美日韩黄色大片| 一本久道久久综合狠狠爱| 一区二区三区 在线观看视| 欧美激情精品久久久久久变态| 欧美承认网站| 99re66热这里只有精品4 | 久久激情中文| 久久久国产精品亚洲一区| 国产一区日韩欧美| 欧美一级成年大片在线观看| 久久―日本道色综合久久| 在线不卡中文字幕播放| 麻豆精品视频在线观看| 亚洲国产精品123| 一本色道88久久加勒比精品| 欧美四级剧情无删版影片| 亚洲一级片在线看| 久久精品最新地址| 亚洲丶国产丶欧美一区二区三区 | 一区二区三区在线视频免费观看| 久久精品动漫| 亚洲国产精品综合| 亚洲五月六月| 国内久久婷婷综合| 免费影视亚洲| 亚洲婷婷在线| 久久天天躁夜夜躁狠狠躁2022| 亚洲黄色在线观看| 国产精品国产三级国产专播精品人 | 欧美日韩在线免费视频| 午夜精品亚洲一区二区三区嫩草| 六十路精品视频| 一区二区三区免费在线观看| 国产精品麻豆欧美日韩ww | 奶水喷射视频一区| 一区二区三区精密机械公司| 久久久久久**毛片大全| 99re在线精品| 一区免费观看视频| 欧美日韩一区二区在线观看| 亚洲欧美偷拍卡通变态| 欧美激情精品久久久久久大尺度| 亚洲愉拍自拍另类高清精品| 在线不卡a资源高清| 国产精品久久久久久久午夜| 久久在线视频在线| 亚洲女同精品视频| 亚洲精品国精品久久99热| 久久爱另类一区二区小说| 亚洲片区在线| 狠狠色狠狠色综合日日五| 欧美日韩亚洲免费| 蜜桃久久av| 欧美专区亚洲专区| 在线亚洲自拍| 亚洲每日更新| 欧美黑人多人双交| 久久久久免费| 午夜精品久久久久久| 日韩亚洲在线观看| 亚洲第一色在线| 国产偷久久久精品专区| 国产精品久久久久久久久久三级 | 亚洲一区二区精品视频| 亚洲日本成人在线观看| 欧美18av| 美腿丝袜亚洲色图| 久久久久久高潮国产精品视| 午夜精品美女久久久久av福利| 亚洲免费福利视频| 亚洲国产成人精品久久久国产成人一区| 国产精品美女xx| 国产精品porn| 国产精品扒开腿爽爽爽视频| 欧美日韩播放| 欧美激情久久久久| 欧美国产先锋| 欧美福利在线| 欧美激情一区二区三级高清视频| 久久综合网hezyo| 久热精品视频在线| 久热精品在线视频| 另类天堂视频在线观看| 免费一级欧美片在线观看| 久久亚洲私人国产精品va| 久久久久久久久久久一区| 久久久精品国产免大香伊| 欧美影院在线播放| 久久激情视频| 久热综合在线亚洲精品| 免费在线成人| 欧美日本国产一区| 国产精品hd| 国产午夜精品久久久久久久| 国产综合久久| 曰韩精品一区二区| 亚洲靠逼com| 亚洲在线中文字幕| 久久精品国产精品亚洲综合| 久久午夜精品一区二区| 欧美成人国产va精品日本一级| 亚洲第一主播视频| 夜夜爽av福利精品导航| 亚洲欧美日韩天堂| 久久免费国产| 欧美韩日亚洲| 国产麻豆精品视频| 亚洲国产精品免费| 亚洲视频在线视频| 久久久91精品国产一区二区精品| 久久躁狠狠躁夜夜爽| 亚洲国产精品热久久| 亚洲手机在线| 久久免费99精品久久久久久| 欧美日韩国产一区二区三区地区 | 久久一区二区三区av| 欧美激情bt| 亚洲图片欧美午夜| 六十路精品视频| 国产精品麻豆成人av电影艾秋| 红桃视频国产一区| 亚洲图中文字幕| 免费成人网www| 一区二区三区波多野结衣在线观看| 欧美伊人久久久久久久久影院| 欧美不卡高清| 国产在线不卡精品| 一本色道久久99精品综合| 久久久久久综合| 在线亚洲+欧美+日本专区| 久久精品亚洲| 国产精品视频专区| 亚洲人被黑人高潮完整版| 久久精品99| 亚洲免费高清视频| 久久久97精品| 国产美女一区| 一区二区精品在线| 欧美ab在线视频| 欧美一区国产在线| 国产精品久久久久久亚洲调教 | 先锋影音国产一区| 欧美午夜一区二区福利视频| 91久久久精品| 巨乳诱惑日韩免费av| 亚洲一区二区三区中文字幕| 女同性一区二区三区人了人一| 国产一区二区三区在线观看精品 | 亚洲综合电影| 最新日韩中文字幕| 久久夜色精品国产| 国产永久精品大片wwwapp| 亚洲欧美日本国产有色| 亚洲人成人一区二区在线观看| 久久久精品欧美丰满| 国产区在线观看成人精品| 一区二区三区欧美激情| 亚洲国产成人在线视频| 久久综合久久久久88| 一区福利视频| 麻豆精品在线播放| 久久精品人人做人人综合| 国产一区二区精品在线观看| 久久国产黑丝| 午夜精品久久久| 国产免费成人| 久久精品亚洲| 久久gogo国模啪啪人体图| 国产日韩欧美精品| 久久久久九九九九| 久久九九久精品国产免费直播| 伊人久久婷婷色综合98网| 毛片基地黄久久久久久天堂| 久久亚洲捆绑美女| 亚洲精品国产精品乱码不99|