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

USACO 0912 月賽

Posted on 2009-12-13 21:14 rikisand 閱讀(335) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Algorithm 、USACO

silver組:

比賽那天感冒,第一題就弄暈了,現(xiàn)在題解出來(lái)了,補(bǔ)上吧~~

暫時(shí)只有第一題的:

Problem 6: Bobsledding [Brian Jacokes, 2009]

Bessie has entered a bobsled competition because she hopes her hefty
weight will give her an advantage over the L meter course (2 <= L
<= 1,000,000,000).

Bessie will push off the starting line at 1 meter per second, but
her speed can change while she rides along the course. Near the
middle of every meter Bessie travels, she can change her speed
either by using gravity to accelerate by one meter per second or
by braking to stay at the same speed or decrease her speed by one
meter per second.

Naturally, Bessie must negotiate N (1 <= N <= 100,000) turns on the
way down the hill. Turn i is located T_i meters from the course
start (1 <= T_i <= L-1), and she must be enter the corner meter at
a speed of at most S_i meters per second (1 <= S_i <= 1,000,000,000).
Bessie can cross the finish line at any speed she likes.

Help Bessie learn the fastest speed she can attain without exceeding
the speed limits on the turns.

Consider this course with the meter markers as integers and the
turn speed limits in brackets (e.g., '[3]'):

|   1   2   3   4   5   6   7[3]
|---+---+---+---+---+---+---+
|                            \
Start                         + 8    
                               \
                                + 9    
                                 \
                                  + 10       +++ 14 (finish)
                                   \         /
                              11[1] +---+---+
                                        12  13[8]

Below is a chart of Bessie's speeds at the beginning of each meter length
of the course:

Max:                              3               1       8
Mtrs: 0   1   2   3   4   5   6   7   8   9  10  11  12  13  14 
Spd:  1   2   3   4   5   5   4   3   4   3   2   1   2   3   4

Her maximum speed was 5 near the beginning of meter 4.

PROBLEM NAME: bobsled

INPUT FORMAT:

* Line 1: Two space-separated integers: L and N

* Lines 2..N+1: Line i+1 describes turn i with two space-separated
        integers: T_i and S_i

SAMPLE INPUT (file bobsled.in):

14 3
7 3
11 1
13 8

OUTPUT FORMAT:

* Line 1: A single integer, representing the maximum speed which
        Bessie can attain between the start and the finish line,
        inclusive.

SAMPLE OUTPUT (file bobsled.out):

5

 

題目看起來(lái)挺復(fù)雜,其實(shí)主要是求出各個(gè)turn處的最大速度,分析得到每個(gè)turn的最大速度需要滿足三個(gè)條件, M_i = min (S_i , t_i – t_{i-1} + M_{i-1} , S_k + t_k – t_i [for all k > i ] )

因此處理每一個(gè)turn都要查詢N個(gè)turn N*N的復(fù)雜度顯然對(duì)于大數(shù)據(jù)要TLE的

逆向思考,如果我們反過(guò)來(lái)考慮,對(duì)于每一個(gè)之后的turn來(lái)說(shuō) 如:i  如果他最大速度為 m_i

那么 在turn i-1處,他不能超過(guò)的最大速度 m_{i-1} = min(S_i,m_i+t_i – t_{i-1});這樣成功的把后面兩個(gè)限制轉(zhuǎn)換為逆推的結(jié)果而不是向后查詢

剩下的問(wèn)題便是如果知道兩個(gè)turn之間距離,以及turn的速度最大值,如何求出之間的最大值,畫(huà)圖顯然可以得到一種算式 maxspeed = min(s1,s2) + (dist2-dist1+abs(s1-s2))/2;

或者 maxspeed = max(s1,s2) + (dist2 – dist1 – abs(s1-s2))/2;

注意在開(kāi)頭和結(jié)尾加入虛擬的turn就可以了

 

Code Snippet
#define REP(i,n)  for(  int (i) = 0 ; i < (n) ; ++i)
using namespace std;
int L,N;
struct node{
    int dist;
    int speed;
};
vector<node> vec;
bool comp(const node& n1,const node& n2){
    return n1.dist<n2.dist;
}
vector<int> up,down;
#define inf 98765433
void solve()
{
    //freopen("e:\\usaco\\bobsled.11.in","r",stdin);
    freopen("bobsled.in","r",stdin);
    freopen("bobsled.out","w",stdout);
    cin>>L>>N;
    vec.resize(N+2); up.resize(N+2,0); down.resize(N+2,0);
    vec[0].dist =0;vec[0].speed =1;
    vec[N+1].dist =L;vec[N+1].speed=inf;
    REP(i,N) scanf("%d %d",&vec[i+1].dist,&vec[i+1].speed);
    sort(vec.begin(),vec.end(),comp);
    down[N+1] = inf;
    for(int i=N;i>0;i--)
        down[i] = min(vec[i].speed,vec[i+1].dist-vec[i].dist+down[i+1]);
    int maxspeed = 1;up[0]=1;
    for(int i=1;i<N+2;i++){
        up[i] = min(down[i],up[i-1]+vec[i].dist - vec[i-1].dist);
        maxspeed = max(maxspeed,min(up[i],up[i-1])+(vec[i].dist-vec[i-1].dist+abs(up[i]-up[i-1]))/2);
    }
    cout<<maxspeed<<endl;
}


int main()
{
    solve();
    return 0;
}

----------------------------------------------3個(gè)月后的修改線-----------------------------------------------------------------

第一個(gè)復(fù)習(xí)周末 ,先看的這道題,過(guò)了這么久果然又杯具的不會(huì)了~~之前的解釋寫(xiě)的有些模糊。

首先,如果要想達(dá)到最快速度,那么只需要求得每個(gè)turn 能夠達(dá)到的最快速度即可~

所以題目編程求每個(gè)turn能達(dá)到的最快速度了。首先得到簡(jiǎn)單的式子,也就是上面的min{1,2,3},第一個(gè)條件決定在這個(gè)turn我們可以加速達(dá)到的最大速度,后兩個(gè)條件為了防止滑的過(guò)快,減不下來(lái)不能通過(guò)自己以及以后的turn。按這種算法,我們必須對(duì)每一個(gè)turn遍歷之后的turn,很沒(méi)有效率。后面兩個(gè)條件是為了防止在turn處滑的過(guò)快~~那么每一個(gè)m_i 只需要滿足 min(S_i,m_{i+1}+t[i+1]-t[i]);只要這樣,就可以保證雪橇可以減速以通過(guò)下一個(gè)turn。顯然最后一個(gè)turn的 m_i 就是他的s_i,這樣遞推回去就能得到一組slowdown值,然后利用前面的式子 up[i]=min{m_i[i],up[i-1]+lenth};正向推回去就可以得到每一個(gè)turn的maxspeed。至于最大speed的算法上面已經(jīng)給出了~

------------------希望下次可以直接做出來(lái),不要再忘了。。。。-------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美精彩视频一区二区三区| 鲁大师影院一区二区三区| 欧美激情一区| 欧美日韩精品一区二区| 欧美日韩精品一区二区三区四区 | 国产午夜精品视频免费不卡69堂| 欧美sm重口味系列视频在线观看| 亚洲黄色在线观看| 亚洲日本成人网| 亚洲欧美国产高清va在线播| 亚洲综合色噜噜狠狠| 久久福利影视| 亚洲日本免费| 中文日韩电影网站| 久久影视三级福利片| 欧美午夜精品电影| 国产最新精品精品你懂的| 亚洲激情综合| 久久精彩视频| 日韩视频在线播放| 久久精品一区中文字幕| 国产精品九九| 亚洲日本电影| 亚洲第一网站| 欧美一区二区三区四区高清| 欧美精品v日韩精品v国产精品| 国产欧美一区二区三区在线老狼| 日韩视频在线免费| 欧美激情一二区| 久久全球大尺度高清视频| 国产欧美一区二区在线观看| 亚洲一区二区三区色| 99亚洲一区二区| 国产精品啊啊啊| 亚洲女与黑人做爰| 日韩亚洲欧美成人| 欧美午夜一区二区三区免费大片| 亚洲精品乱码久久久久久蜜桃91 | 国产拍揄自揄精品视频麻豆| 久久久xxx| 99re在线精品| 欧美视频导航| 亚洲专区国产精品| 午夜精品国产更新| 好吊妞这里只有精品| 欧美成人国产va精品日本一级| 欧美a一区二区| 欧美综合第一页| 欧美99久久| 久久九九免费| 欧美视频在线观看| 久久综合网hezyo| 国产精品国产三级国产专区53| 久久久久久伊人| 国产精品wwwwww| 亚洲大胆在线| 狠狠色综合网站久久久久久久| 一区二区av在线| 亚洲精品一区二区三区婷婷月| 久久se精品一区二区| 一区二区在线观看视频在线观看 | 日韩一级大片| 性久久久久久久久久久久| 99re6热在线精品视频播放速度| 久久精品三级| 久久婷婷色综合| 欧美日韩一区二区在线播放| 亚洲欧洲精品一区二区精品久久久| 一区二区在线免费观看| 久久av一区二区三区漫画| 久久精品国产2020观看福利| 国产精品美女久久久久aⅴ国产馆| 欧美激情亚洲视频| 中文一区字幕| 亚洲第一福利视频| 国产欧美日韩专区发布| 亚洲一区二区三区涩| 欧美一区二区三区视频| 国产综合欧美| 猛男gaygay欧美视频| 最新成人av在线| 亚洲欧美国产日韩天堂区| 国产精品夜夜夜一区二区三区尤| 亚洲欧美在线播放| 乱中年女人伦av一区二区| 亚洲日本中文字幕免费在线不卡| 欧美99在线视频观看| 一本久久知道综合久久| 久久精品2019中文字幕| 亚洲美洲欧洲综合国产一区| 欧美日韩亚洲视频| 欧美一级视频| 一本色道久久综合一区| 麻豆国产精品777777在线| 一本色道久久88综合日韩精品 | 欧美精品国产精品日韩精品| 一本高清dvd不卡在线观看| 美女主播精品视频一二三四| 亚洲精选久久| 韩国一区二区在线观看| 欧美日韩在线播放一区| 欧美成人精品h版在线观看| 新片速递亚洲合集欧美合集| 一本色道久久综合精品竹菊| 欧美激情bt| 亚洲激情成人| 午夜精品999| 欧美日本一区二区视频在线观看| 亚洲午夜女主播在线直播| 久久久久一区二区三区| 欧美一区亚洲| 99精品视频一区二区三区| 欧美与黑人午夜性猛交久久久| 影音先锋中文字幕一区二区| 美女在线一区二区| 国产精品一区二区三区成人| 欧美激情久久久久久| 国内精品亚洲| 一本色道久久88亚洲综合88| 亚洲国产精品第一区二区| 一区二区三区四区五区精品视频| 日韩一级不卡| 欧美日韩免费高清一区色橹橹| 久久久久久亚洲精品中文字幕 | 亚洲精品综合精品自拍| 国产伪娘ts一区| 国产一区清纯| 亚洲第一区在线| 亚洲伦理久久| 一区二区久久久久久| 午夜精品三级视频福利| 免费看亚洲片| 亚洲日韩欧美一区二区在线| 亚洲国产三级在线| 亚洲综合三区| 乱码第一页成人| 国产欧美在线观看一区| 亚洲三级免费| 欧美专区福利在线| 亚洲一区二区三区四区五区午夜 | 91久久精品国产91久久性色| 欧美aⅴ99久久黑人专区| 亚洲福利视频在线| 黄色一区三区| 亚洲精品少妇30p| 亚洲第一区色| 久久精品视频播放| 国内综合精品午夜久久资源| 亚洲私拍自拍| 亚洲国产乱码最新视频| 久久精品国产亚洲精品| 国产美女一区二区| 亚洲欧美www| 欧美aⅴ99久久黑人专区| 欧美在线观看网站| 国产精品一区二区女厕厕| 9l国产精品久久久久麻豆| 欧美激情精品久久久久| 久久久xxx| 亚洲日本一区二区三区| 亚洲毛片网站| 欧美屁股在线| 欧美一区三区三区高中清蜜桃| 亚洲一区二区免费看| 国产一区在线视频| 亚洲日本中文字幕区| 欧美精品尤物在线| 国产真实精品久久二三区| 亚洲国产精品女人久久久| 国产精品亚洲аv天堂网| 亚洲韩日在线| 亚洲国产欧美日韩精品| 亚洲欧美怡红院| av成人免费在线观看| 免费高清在线一区| 欧美日韩在线播| 久久精品国产免费| 欧美激情视频一区二区三区不卡| 亚洲人成网站在线观看播放| 欧美激情精品久久久| 国产精品99免视看9| 欧美福利小视频| 国内精品久久久久久影视8| 最新亚洲电影| 韩日欧美一区二区| 99精品国产福利在线观看免费 | 亚洲高清毛片| 国产精品一区二区三区四区| 亚洲经典三级| 伊人狠狠色j香婷婷综合| 亚洲一区二区视频| 在线亚洲精品| 欧美日韩在线另类| 亚洲一区二区动漫| 欧美亚洲综合另类| 国产伦精品一区二区三区照片91| 久久久夜精品| 欧美成人免费小视频| 国产欧美综合在线| 欧美亚洲日本网站|