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

oyjpArt ACM/ICPC算法程序設計空間

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6

PKU1925 Spiderman 【DP】

Posted on 2007-04-05 20:41 oyjpart 閱讀(2349) 評論(2)  編輯 收藏 引用 所屬分類: ACM/ICPC或其他比賽

Spiderman
Time Limit:5000MS  Memory Limit:65536K
Total Submit:1762 Accepted:197

Description
Dr. Octopus kidnapped Spiderman's girlfriend M.J. and kept her in the West Tower. Now the hero, Spiderman, has to reach the tower as soon as he can to rescue her, using his own weapon, the web.

From Spiderman's apartment, where he starts, to the tower there is a straight road. Alongside of the road stand many tall buildings, which are definitely taller or equal to his apartment. Spiderman can shoot his web to the top of any building between the tower and himself (including the tower), and then swing to the other side of the building. At the moment he finishes the swing, he can shoot his web to another building and make another swing until he gets to the west tower. Figure-1 shows how Spiderman gets to the tower from the top of his apartment – he swings from A to B, from B to C, and from C to the tower. All the buildings (including the tower) are treated as straight lines, and during his swings he can't hit the ground, which means the length of the web is shorter or equal to the height of the building. Notice that during Spiderman's swings, he can never go backwards.


You may assume that each swing takes a unit of time. As in Figure-1, Spiderman used 3 swings to reach the tower, and you can easily find out that there is no better way.

 

Input
The first line of the input contains the number of test cases K (1 <= K <= 20). Each case starts with a line containing a single integer N (2 <= N <= 5000), the number of buildings (including the apartment and the tower). N lines follow and each line contains two integers Xi, Yi, (0 <= Xi, Yi <= 1000000) the position and height of the building. The first building is always the apartment and the last one is always the tower. The input is sorted by Xi value in ascending order and no two buildings have the same X value.

Output
For each test case, output one line containing the minimum number of swings (if it's possible to reach the tower) or -1 if Spiderman can't reach the tower.

Sample Input

2
6
0 3
3 5
4 3
5 5
7 4
10 4
3
0 3
3 4
10 4

 

Sample Output

3
-1

 

Source
Beijing 2004 Preliminary@POJ

這是DP題,根據(jù)坐標DP是比較好的選擇,提交中wa多次。經(jīng)回復指點 才注意到建筑物高度相乘越界了 謝謝提醒了

//Solution by oyjpArt
#include <stdio.h>
#include <math.h>
#include <string.h>
const int N = 5010;
const int M = 1000010;
int x[N], y[N], dp[M], nb;
const int MAXINT = 2000000000;
#define Min(a,b) ((a) < (b) ? (a) : (b))

int main() {
 int ntc, i, j;
 scanf("%d", &ntc);
 while(ntc--) {
  scanf("%d", &nb);
  for(i = 0; i<nb; i++)  scanf("%d %d", x+i, y+i);
  int m = x[nb-1];
  memset(dp, -1, (m+1)*sizeof(dp[0]));
  dp[x[0]] = 0;
  double h = y[0]; 
  for(i = 1; i<nb; i++) { //以1..i的建筑為中介進行飛行
   int d = sqrt(2*y[i]*h - h*h); //不會墜落到地上的最長距離 sqrt(y[i]*y[i]-sqare(y[i]-h))
   for(j = 1; j<=d; j++) { //DP
    if(x[i]-j < x[0]) break; //無用狀態(tài)
    if(dp[x[i]-j] == -1) continue; //不可達
    int k = x[i]+j < m ? x[i]+j : m;
    if(dp[k] == -1) dp[k] = dp[x[i]-j]+1;
    else dp[k] = Min(dp[k], dp[x[i]-j]+1);
   }//for
  }//for
  printf("%d\n", dp[m]);
 }
 return 0;
}

Feedback

# re: PKU1925 Spiderman 【DP】  回復  更多評論   

2007-04-11 15:24 by mark
int的話相乘后可能越界了

# re: PKU1925 Spiderman 【DP】  回復  更多評論   

2007-04-16 20:53 by oyjpart
謝謝提醒 呵呵
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美激情一区二区三区蜜桃视频| 亚洲美女黄网| 亚洲一区中文| 亚洲精品在线一区二区| 久久精品国产精品亚洲精品| 性欧美办公室18xxxxhd| 亚洲一级片在线观看| 国产精品久久久99| 新67194成人永久网站| 午夜精品福利电影| 国产日韩一区| 久久全国免费视频| 玖玖玖国产精品| 一区二区日韩伦理片| 一区二区电影免费在线观看| 欧美私人啪啪vps| 欧美在线亚洲综合一区| 久久精品国产综合| 亚洲美女少妇无套啪啪呻吟| 99av国产精品欲麻豆| 国产精品久久久久久久午夜片| 欧美中文字幕在线观看| 久久婷婷国产综合精品青草| 亚洲理论在线观看| 亚洲图片欧美午夜| 伊人久久亚洲热| 亚洲毛片播放| 国内精品久久久久影院优| 亚洲韩国精品一区| 国产精品美女xx| 欧美高清视频一区二区| 亚洲电影免费观看高清完整版| 欧美在线日韩在线| 在线观看免费视频综合| 最新精品在线| 亚洲啪啪91| 美腿丝袜亚洲色图| 老司机免费视频一区二区| 久久精品三级| 日韩一级不卡| 午夜精品视频在线观看一区二区 | 亚洲深夜福利视频| 久久av在线看| 亚洲一区二区在线| 欧美a级理论片| 久久久人成影片一区二区三区| 欧美日韩大片一区二区三区| 久久久美女艺术照精彩视频福利播放| 欧美日韩精品一区二区天天拍小说| 久久xxxx精品视频| 欧美视频专区一二在线观看| 欧美福利小视频| 国产日韩综合一区二区性色av| 亚洲美女性视频| 亚洲精品在线观看免费| 久久精品欧美日韩精品| 午夜日韩激情| 欧美亚男人的天堂| 亚洲精品123区| 最新亚洲视频| 裸体一区二区| 蜜桃av综合| 国产主播喷水一区二区| 亚洲网友自拍| 亚洲性感激情| 欧美日韩精品一区二区三区四区| 亚洲福利视频一区| 亚洲国产一区二区三区在线播 | 欧美成人蜜桃| 在线精品福利| 久久午夜精品一区二区| 噜噜噜在线观看免费视频日韩 | 欧美日韩亚洲国产一区| 亚洲日韩欧美视频一区| 亚洲精品国产拍免费91在线| 美女任你摸久久| 欧美大片在线观看| 亚洲精品社区| 欧美日韩成人综合在线一区二区| 日韩亚洲在线观看| 亚洲一区国产精品| 国产精品一区二区三区久久 | 亚洲第一在线视频| 99国内精品久久| 国产精品成人一区二区艾草| 中文精品视频| 久久精品视频亚洲| 亚洲国产成人av| 欧美美女日韩| 亚洲一区二区不卡免费| 久久精品国产精品亚洲精品| 一区二区三区在线观看视频 | 性做久久久久久久久| 久久蜜桃精品| 亚洲乱码国产乱码精品精98午夜| 欧美日韩高清在线播放| 亚洲欧美另类中文字幕| 美女国产一区| 一本久久精品一区二区| 国产伦精品一区二区三区四区免费 | 亚洲黄色大片| 午夜精品福利电影| 伊人精品在线| 欧美日韩在线精品一区二区三区| 午夜视频精品| 亚洲国产一区二区三区青草影视| 亚洲欧美日韩区| 91久久精品美女高潮| 国产精自产拍久久久久久| 免费亚洲网站| 欧美在线播放| 亚洲理论在线| 老鸭窝毛片一区二区三区| 夜久久久久久| 伊人男人综合视频网| 欧美午夜a级限制福利片| 久久久国产91| 亚洲综合电影一区二区三区| 亚洲国产美国国产综合一区二区| 欧美在线电影| aa国产精品| 亚洲高清三级视频| 国产精品日韩欧美| 欧美极品在线观看| 久久精品主播| 亚洲一区二区在| 亚洲国产欧美在线人成| 久久久亚洲影院你懂的| 亚洲男女自偷自拍| 亚洲精品乱码久久久久久按摩观| 国产亚洲aⅴaaaaaa毛片| 欧美日韩一级黄| 欧美激情国产精品| 久久在精品线影院精品国产| 性高湖久久久久久久久| 一区二区三区四区五区精品视频| 亚洲国产成人91精品| 久久频这里精品99香蕉| 欧美一区二区三区在| 亚洲一级影院| 一区二区三区色| 夜色激情一区二区| 一区二区三区欧美| a4yy欧美一区二区三区| 亚洲精品免费电影| 亚洲人成高清| 亚洲人成亚洲人成在线观看图片 | 国产亚洲一级高清| 国产精品国产三级国产aⅴ9色| 欧美电影免费观看大全| 免费成人av在线| 免费永久网站黄欧美| 牛夜精品久久久久久久99黑人| 久久久久久久久岛国免费| 久久免费视频在线| 久久综合电影| 欧美激情视频给我| 欧美精品国产精品日韩精品| 欧美激情亚洲自拍| 国产精品vvv| 国产精品久久福利| 国产精品一区二区久久| 国产欧美日本| 精品成人一区二区三区| 亚洲电影视频在线| 亚洲精品一区二区三区蜜桃久| 亚洲精品综合精品自拍| 一区二区三区欧美激情| 在线亚洲美日韩| 欧美亚洲一级片| 女主播福利一区| 亚洲精品欧美专区| 亚洲综合日本| 久久久人成影片一区二区三区观看 | 免费高清在线视频一区·| 欧美韩国一区| 国产精品卡一卡二| 狠狠色狠狠色综合人人| 日韩一级欧洲| 午夜精品久久久久久久99樱桃 | 亚洲精品久久| 亚洲一区二区三区欧美| 久久美女性网| 亚洲九九精品| 久久精品主播| 欧美日韩一区高清| 一区久久精品| 亚洲一区日韩在线| 欧美91大片| 亚洲一级在线观看| 免费一级欧美片在线观看| 国产欧美精品va在线观看| 亚洲欧洲日产国产网站| 香蕉成人久久| 亚洲日本国产| 久久婷婷丁香| 国产午夜精品一区二区三区视频| 亚洲精品一区在线观看香蕉| 欧美影院成年免费版| 亚洲精品1234|