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

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>
            欧美激情中文字幕乱码免费| 国产精品拍天天在线| 性欧美激情精品| 久久偷窥视频| 国产麻豆成人精品| 亚洲国产综合91精品麻豆| 亚洲一区二区三区精品视频 | 亚洲国产精品黑人久久久| 夜夜嗨一区二区| 欧美激情按摩| 久久国产精品黑丝| 欧美图区在线视频| 91久久亚洲| 亚洲国产精品久久精品怡红院 | 久久精品国产精品亚洲综合| 欧美日韩综合在线| 亚洲人体偷拍| 噜噜噜躁狠狠躁狠狠精品视频 | 国产精品福利片| 亚洲精品欧洲| 另类激情亚洲| 欧美国产精品v| 欧美影视一区| 国产欧美欧美| 国内一区二区在线视频观看| 午夜激情亚洲| 这里只有精品丝袜| 欧美日韩精品不卡| 亚洲免费黄色| 在线一区免费观看| 国产精品国产三级国产专播品爱网 | 久久久999精品免费| 国产综合色产在线精品| 午夜精品久久久久久久99黑人| 亚洲一区二区动漫| 欧美日韩高清不卡| 在线一区二区三区做爰视频网站| 亚洲人妖在线| 国产精品无码永久免费888| 亚洲欧美激情视频| 亚洲欧美日韩国产一区二区三区 | 91久久亚洲| 久久伊伊香蕉| 欧美精品一区二区三区在线播放| 亚洲日本一区二区| 亚洲日本成人| 久久―日本道色综合久久| 亚洲精品视频啊美女在线直播| 欧美xart系列高清| 欧美精品aa| 亚洲网站在线看| 欧美专区在线播放| 亚洲精品日韩精品| 99精品国产在热久久下载| 国产精品羞羞答答| 亚洲激情电影在线| 国产精品日韩在线观看| 久久视频一区| 欧美大片18| 久久久久一区二区三区| 老司机精品导航| 在线亚洲一区二区| 久久成人免费日本黄色| 一区二区三区日韩欧美| 亚洲欧美日韩在线高清直播| 伊人久久av导航| 99国产一区二区三精品乱码| 影音先锋亚洲视频| 亚洲精品视频在线播放| 国产欧美成人| 亚洲精品在线电影| 国产亚洲欧美aaaa| 91久久极品少妇xxxxⅹ软件| 国产一区二区在线观看免费| 亚洲电影av在线| 国产精品日韩一区二区三区| 久久久久久久久久看片| 欧美一区二区三区免费大片| 亚洲激情六月丁香| 先锋影音久久| 一区二区日本视频| 欧美精品18videos性欧美| 久久久久国产精品一区| 欧美日韩亚洲网| 欧美成人黑人xx视频免费观看| 国产精品激情电影| 亚洲全黄一级网站| 红桃视频亚洲| 亚洲一区二区免费看| 一区二区三区成人| 裸体丰满少妇做受久久99精品| 亚洲欧美国产高清va在线播| 欧美国产精品v| 99国产精品久久久久久久成人热| 久久久综合视频| 国产日韩精品久久| 欧美xx视频| 欧美一区网站| 国产欧美91| 亚洲影院色无极综合| 亚洲一区二区三区视频播放| 欧美日韩免费观看一区二区三区| 亚洲国产高清高潮精品美女| 亚洲激情视频在线观看| 美脚丝袜一区二区三区在线观看 | 欧美日韩精品一区二区在线播放| 亚洲国产精品激情在线观看| 99re6这里只有精品视频在线观看| 欧美福利视频在线观看| 欧美成人tv| 日韩视频永久免费观看| 欧美电影美腿模特1979在线看| 欧美激情亚洲激情| 亚洲精品综合精品自拍| 欧美日韩国产一区精品一区| 一本久久综合亚洲鲁鲁五月天| 亚洲欧美日韩另类| 国产午夜久久久久| 久久综合网络一区二区| 亚洲国产成人久久综合| 夜夜嗨av一区二区三区网站四季av| 欧美另类视频在线| 亚洲一级片在线观看| 久久久久九九九九| 亚洲国内自拍| 欧美日韩免费观看一区| 亚洲免费视频网站| 免费成人av在线看| 99热这里只有精品8| 国产精品人人爽人人做我的可爱 | 伊人精品久久久久7777| 亚洲性感美女99在线| 久久久久久**毛片大全| 国产精品久久毛片a| 欧美主播一区二区三区| 欧美激情亚洲精品| 亚洲男人影院| 在线观看成人小视频| 国产精品va在线播放| 亚洲精品九九| 久久亚洲视频| 亚洲影院色无极综合| 1000精品久久久久久久久| 欧美日韩一二区| 麻豆成人综合网| 亚洲欧美中文日韩v在线观看| 欧美激情综合色| 久久精品国产99国产精品| 日韩午夜在线| 亚洲国产女人aaa毛片在线| 国产视频在线观看一区二区| 欧美日韩国产一区| 欧美本精品男人aⅴ天堂| 亚洲在线不卡| 一级日韩一区在线观看| 欧美国产日本| 久久综合色88| 欧美在线一级va免费观看| 欧美日韩亚洲一区在线观看| 麻豆成人91精品二区三区| 欧美一区二区日韩一区二区| 一本一本a久久| 亚洲美女av黄| 免费永久网站黄欧美| 久久精品99久久香蕉国产色戒| 9l国产精品久久久久麻豆| 亚洲国产日韩在线一区模特| 黑丝一区二区| 国产亚洲精品久| 国产日韩欧美中文| 国产精品久久久| 欧美日韩在线播放| 欧美经典一区二区| 欧美成人免费全部观看天天性色| 久久久国际精品| 久久精品视频在线| 一区二区日本视频| 夜夜嗨av一区二区三区中文字幕 | 欧美激情综合| 欧美国产视频在线| 欧美激情亚洲一区| 亚洲高清视频的网址| 欧美成人资源网| 欧美大香线蕉线伊人久久国产精品| 久久漫画官网| 久久综合九九| 可以免费看不卡的av网站| 麻豆精品在线观看| 欧美激情精品久久久久久蜜臀| 欧美激情按摩| 亚洲欧洲一区二区天堂久久 | 亚洲欧美日韩精品一区二区| 亚洲一区日韩在线| 亚洲欧美成人精品| 久久成人免费网| 免费成人高清| 欧美激情综合网| 国产精品久久久久91| 国产无一区二区| 亚洲激情第一区|