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

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>
            一区二区三区欧美视频| 国产精品vvv| 夜夜夜久久久| 亚洲欧洲日韩综合二区| 亚洲国产成人在线播放| 欧美国产日韩一区二区| 亚洲国产精品久久久| 亚洲精品乱码久久久久久| 99视频在线观看一区三区| 亚洲影院一区| 亚洲国产另类精品专区 | 亚洲免费精品| 99视频在线观看一区三区| 亚洲素人一区二区| 久久国产精品99精品国产| 久久综合九色综合网站| 亚洲国产欧美在线 | 另类成人小视频在线| 欧美激情麻豆| 国产日韩欧美夫妻视频在线观看| 精品动漫3d一区二区三区| 日韩视频一区二区| 久久国产精品久久久| 欧美国产一区二区三区激情无套| 日韩视频一区二区在线观看 | 亚洲国产精品美女| 亚洲免费一在线| 欧美成人精品| 亚洲欧美另类在线| 欧美激情一区二区在线| 国产亚洲精品久| 亚洲视频播放| 亚洲成色精品| 欧美一区二区在线免费播放| 欧美成人精品1314www| 国产香蕉97碰碰久久人人| 一区二区三区.www| 欧美激情第一页xxx| 欧美一区二区在线免费观看| 欧美日韩第一页| 最新亚洲电影| 久久天天躁狠狠躁夜夜爽蜜月| 日韩视频在线观看国产| 欧美大片在线看| 亚洲第一页中文字幕| 久久久伊人欧美| 亚洲欧美视频| 国产精品自拍一区| 亚洲欧美日韩在线不卡| 亚洲精品一区二区三区av| 欧美第一黄色网| 亚洲精品一区二区三| 欧美激情在线有限公司| 另类酷文…触手系列精品集v1小说| 国产亚洲成av人片在线观看桃| 亚洲男女自偷自拍| 亚洲特级毛片| 国产精品视频在线观看| 亚洲欧美激情视频在线观看一区二区三区| 亚洲国产精品久久久久秋霞影院 | 亚洲一区二区三区国产| 欧美国产高潮xxxx1819| 亚洲精品乱码久久久久久黑人 | 午夜在线精品偷拍| 亚洲午夜久久久| 国产麻豆精品theporn| 性色av一区二区三区| 亚洲欧美精品在线| 国模精品一区二区三区| 久热国产精品| 欧美黑人国产人伦爽爽爽| 亚洲日韩欧美视频一区| 亚洲三级影院| 国产欧美 在线欧美| 欧美一区二区三区四区在线| 午夜精品久久久| 伊人婷婷欧美激情| 亚洲激情av在线| 国产精品久久久久国产a级| 久久精品国产亚洲高清剧情介绍| 久久国产色av| 99国产精品自拍| 亚洲欧美综合网| 亚洲经典一区| 亚洲女同在线| 亚洲精品男同| 亚洲综合丁香| 亚洲欧洲精品天堂一级| 亚洲色图综合久久| 亚洲成人资源| 一区二区三区欧美亚洲| 好吊色欧美一区二区三区四区| 欧美黑人多人双交| 国产欧美精品日韩精品| 欧美va亚洲va香蕉在线| 欧美色大人视频| 免费成人av在线| 国产精品vvv| 亚洲成人中文| 国产一区二区三区成人欧美日韩在线观看 | 亚洲人被黑人高潮完整版| 国产精品久久一区二区三区| 欧美aaaaaaaa牛牛影院| 国产精品国产三级国产aⅴ浪潮| 久久人人爽人人| 欧美性色视频在线| 亚洲国产精品成人综合| 国外成人性视频| 亚洲影院在线| 一区二区三区精品视频在线观看| 欧美一区二区三区久久精品 | 欧美风情在线观看| 久久久精品国产免大香伊| 欧美激情中文不卡| 久久久久久一区二区| 欧美午夜精品一区| 亚洲茄子视频| 亚洲国产天堂网精品网站| 亚洲在线视频网站| 中文在线一区| 欧美激情网友自拍| 欧美国产欧美综合| 激情小说另类小说亚洲欧美| 正在播放欧美视频| 99国产精品久久久久老师 | 亚洲精品网站在线播放gif| 一区二区在线视频| 久久精品在线| 久久一日本道色综合久久| 国产日韩成人精品| 午夜亚洲影视| 久久免费视频网| 国产一区激情| 久久久久.com| 免费人成精品欧美精品| 国产一区二区成人| 欧美伊人久久久久久久久影院| 亚洲欧美中文另类| 国产日韩欧美麻豆| 久久国产欧美精品| 美日韩精品免费观看视频| 在线成人黄色| 欧美暴力喷水在线| 亚洲人成在线播放网站岛国| 亚洲毛片在线看| 欧美日韩国产美| 亚洲视频1区2区| 欧美在线影院| 伊人精品久久久久7777| 老色鬼久久亚洲一区二区| 亚洲国产精品久久91精品| 在线天堂一区av电影| 国产精品伊人日日| 久久久精彩视频| 亚洲片在线观看| 亚洲欧美久久久久一区二区三区| 国产精品三级视频| 久久人人看视频| 亚洲精品久久久久久久久久久久| 亚洲一区二区不卡免费| 国产午夜精品理论片a级探花| 久久久亚洲人| 一本色道久久综合一区| 久久久久久网址| 亚洲欧洲精品一区二区三区| 欧美三级网页| 久久久久九九视频| 亚洲精品偷拍| 久久影视精品| 亚洲午夜性刺激影院| 国产一区二区丝袜高跟鞋图片| 免费观看欧美在线视频的网站| 99re66热这里只有精品4| 久久久久久一区| 亚洲先锋成人| 一区二区三区在线看| 欧美视频在线观看免费| 久久精品日韩欧美| 亚洲视频欧美视频| 欧美激情黄色片| 久久精品人人爽| 久久成人免费| 亚洲天堂av电影| 激情亚洲一区二区三区四区| 欧美日韩大片| 老司机aⅴ在线精品导航| 亚洲综合日韩在线| 日韩视频精品在线| 欧美岛国激情| 久色成人在线| 久久成人亚洲| 亚洲一区高清| 99精品国产在热久久| 一区二区三区在线高清| 国产精品综合久久久| 欧美裸体一区二区三区| 久久综合999| 久久久噜噜噜久久人人看| 亚洲欧美综合国产精品一区| 日韩视频―中文字幕|