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

隨筆 - 87  文章 - 279  trackbacks - 0
<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 221458
  • 排名 - 118

最新評論

閱讀排行榜

評論排行榜

BellmanFord實現

The Doors

Time limit: 1 Seconds?? Memory limit: 32768K??
Total Submit: 214?? Accepted Submit: 63??

You are to find the length of the shortest path through a chamber containing obstructing walls. The chamber will always have sides at x = 0, x = 10, y = 0, and y = 10. The initial and final points of the path are always (0, 5) and (10, 5). There will also be from 0 to 18 vertical walls inside the chamber, each with two doorways. The figure below illustrates such a chamber and also shows the path of minimal length.


Input

The input data for the illustrated chamber would appear as follows.

2
4 2 7 8 9
7 3 4.5 6 7

The first line contains the number of interior walls. Then there is a line for each such wall, containing five real numbers. The first number is the x coordinate of the wall (0 < x < 10), and the remaining four are the y coordinates of the ends of the doorways in that wall. The x coordinates of the walls are in increasing order, and within each line the y coordinates are in increasing order. The input file will contain at least one such set of data. The end of the data comes when the number of walls is -1.


Output

The output file should contain one line of output for each chamber. The line should contain the minimal path length rounded to two decimal places past the decimal point, and always showing the two decimal places past the decimal point. The line should contain no blanks.


Sample Input

1
5 4 6 7 8
2
4 2 7 8 9
7 3 4.5 6 7
-1


Sample Output

10.00
10.06

#include?<iostream>
#include?
<cmath>
using?namespace?std;

const?double?INF?=?2000000000;
const?int?MAXN?=?100;

struct?POINT
{
????
double?x,?y;
}
;
struct?EDGE
{
????
int?u,?v;
}
;

double?g[MAXN][MAXN];
EDGE?e[MAXN
*MAXN];
int?n;
int?i,?j;
double?wX[20];
double?pY[20][4];
double?x;
POINT?p[MAXN];
int?pSize;
int?eSize;

double?Dis(POINT?a,?POINT?b)
{
????
return?sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}


double?Cross(double?x1,?double?y1,?double?x2,?double?y2,?double?x3,?double?y3)
{
????
return?(x2-x1)*(y3-y1)-(x3-x1)*(y2-y1);
}


bool?IsOk(POINT?a,?POINT?b)
{
????
if?(a.x?>=?b.x)?return?false;
????
int?i,?j;
????
bool?flag?=?true;
????i?
=?0;
????
while?(wX[i]?<=?a.x?&&?i?<?n)?{
????????i
++;
????}

????
while?(wX[i]?<?b.x?&&?i?<?n)?{
????????
if?(Cross(a.x,?a.y,?b.x,?b.y,?wX[i],?0)
????????
*Cross(a.x,?a.y,?b.x,?b.y,?wX[i],?pY[i][0])?<?0
????????
||?Cross(a.x,?a.y,?b.x,?b.y,?wX[i],?pY[i][1])
????????
*Cross(a.x,?a.y,?b.x,?b.y,?wX[i],?pY[i][2])?<?0
????????
||?Cross(a.x,?a.y,?b.x,?b.y,?wX[i],?pY[i][3])
????????
*Cross(a.x,?a.y,?b.x,?b.y,?wX[i],?10)?<?0)?{
????????????flag?
=?false;
????????????
goto?ou;
????????}

????????i
++;
????}

????ou:;
????
return?flag;
}


double?BellmanFord(int?beg,?int?end)
{
????
double?d[MAXN];
????
int?i,?j;
????
for?(i=0;?i<MAXN;?i++)?{
????????d[i]?
=?INF;
????}

????d[beg]?
=?0;
????
bool?ex?=?true;
????
for?(i=0;?i<pSize?&&?ex;?i++)?{
????????ex?
=?false;
????????
for?(j=0;?j<eSize;?j++)?{
????????????
if?(d[e[j].u]?<?INF?&&?d[e[j].v]?>?d[e[j].u]?+?g[e[j].u][e[j].v])?{
????????????????d[e[j].v]?
=?d[e[j].u]?+?g[e[j].u][e[j].v];
????????????????ex?
=?true;
????????????}

????????}

????}

????
return?d[end];
}


void?Solve()
{
????p[
0].x?=?0;
????p[
0].y?=?5;
????pSize?
=?1;
????
for?(i=0;?i<n;?i++)?{
????????scanf(
"%lf",?&wX[i]);
????????
for?(j=0;?j<4;?j++)?{
????????????p[pSize].x?
=?wX[i];
????????????scanf(
"%lf",?&p[pSize].y);
????????????pY[i][j]?
=?p[pSize].y;
????????????pSize
++;
????????}

????}

????p[pSize].x?
=?10;
????p[pSize].y?
=?5;
????pSize
++;
????
for?(i=0;?i<pSize;?i++)?{
????????
for?(j=0;?j<pSize;?j++)?{
????????????g[i][j]?
=?INF;
????????}

????}

????eSize?
=?0;
????
for?(i=0;?i<pSize;?i++)?{
????????
for?(j=i+1;?j<pSize;?j++)?{
????????????
if?(IsOk(p[i],?p[j]))?{
????????????????g[i][j]?
=?Dis(p[i],?p[j]);
????????????????e[eSize].u?
=?i;
????????????????e[eSize].v?
=?j;
????????????????eSize
++;
????????????}

????????}

????}

????printf(
"%.2lf\n",?BellmanFord(0,?pSize-1));
}


int?main()
{
????
while?(scanf("%d",?&n)?!=?EOF)
????
{
????????
if?(n?==?-1)?break;
????????Solve();
????}

????
return?0;
}

posted on 2006-10-09 01:05 閱讀(513) 評論(0)  編輯 收藏 引用 所屬分類: ACM題目
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            美国成人直播| 亚洲电影在线观看| 国产亚洲欧美色| 久久国产乱子精品免费女| 久久久午夜视频| 亚洲欧洲在线播放| 欧美三级视频| 欧美一级黄色录像| 美脚丝袜一区二区三区在线观看| 亚洲区一区二| 国产精品成人aaaaa网站| 亚洲综合欧美| 国产一区二区三区四区hd| 久久婷婷久久| 一区二区高清视频| 久久久另类综合| 99视频一区二区三区| 国产精品女人久久久久久| 免费视频一区二区三区在线观看| 91久久精品国产91久久| 国产精品欧美日韩久久| 两个人的视频www国产精品| 一区二区日韩精品| 老色鬼久久亚洲一区二区| 99天天综合性| 伊人色综合久久天天| 欧美日韩亚洲精品内裤| 久久国产日韩| 一区二区三区四区五区视频| 久久野战av| 亚洲在线视频观看| 欧美国产成人精品| 亚洲欧美日韩精品久久久| 亚洲激情成人| 久久久五月婷婷| 亚洲欧美成人精品| 最新成人在线| 一区二区亚洲精品国产| 国产精品久久久久久av下载红粉| 久热精品在线| 欧美主播一区二区三区| av成人免费在线| 欧美韩日一区二区| 久久久久国色av免费观看性色| 一区二区三区久久久| 久久久久久综合| 亚洲视频一二区| 亚洲区中文字幕| 欧美v日韩v国产v| 在线观看一区欧美| 国产精品视频一区二区高潮| 欧美大片一区| 免费观看一区| 久久婷婷成人综合色| 欧美在线高清视频| 亚洲欧美中文字幕| 亚洲免费人成在线视频观看| 艳妇臀荡乳欲伦亚洲一区| 亚洲人成人一区二区三区| 亚洲人成网站777色婷婷| 狠狠色丁香久久综合频道| 国产目拍亚洲精品99久久精品| 欧美日韩在线三区| 欧美日本一道本| 欧美黄色大片网站| 蜜臀久久久99精品久久久久久 | 午夜精品福利视频| 99精品国产高清一区二区| 亚洲人屁股眼子交8| 亚洲福利国产| 亚洲日本视频| 亚洲精品在线免费| 亚洲伊人伊色伊影伊综合网| 一本色道久久综合亚洲精品小说| 亚洲日韩欧美一区二区在线| 亚洲全部视频| 亚洲作爱视频| 亚洲一区欧美一区| 销魂美女一区二区三区视频在线| 亚洲欧美偷拍卡通变态| 欧美一级黄色录像| 久久九九精品99国产精品| 久久免费黄色| 欧美电影美腿模特1979在线看| 欧美成人四级电影| 亚洲激情视频在线观看| 一本色道久久综合亚洲精品按摩| 亚洲影视九九影院在线观看| 亚洲欧美日韩另类| 久久久国产午夜精品| 免费中文字幕日韩欧美| 亚洲级视频在线观看免费1级| 亚洲毛片在线看| 亚洲欧美成人| 久久青青草综合| 欧美日韩a区| 国产精品卡一卡二| 狠狠色综合色综合网络| 亚洲人成啪啪网站| 亚洲欧美在线x视频| 久久久久久有精品国产| 欧美激情视频给我| 欧美亚洲一区| 麻豆国产精品一区二区三区| 亚洲国产精品www| 亚洲午夜久久久久久久久电影院| 欧美在线日韩| 欧美日韩国产天堂| 国产一在线精品一区在线观看| 亚洲国产免费看| 午夜精彩视频在线观看不卡| 久久亚洲春色中文字幕久久久| 亚洲国产视频一区| 亚洲欧美一区二区三区在线| 欧美大成色www永久网站婷| 国产精品地址| 亚洲国产精品嫩草影院| 亚洲一区二区三区在线播放| 久久综合影视| 亚洲素人在线| 欧美国产第一页| 国产综合色产在线精品| 一本色道久久综合狠狠躁篇的优点 | 9色国产精品| 久久一区欧美| 国产日韩欧美在线看| 99国产一区二区三精品乱码| 久久人人超碰| 亚洲尤物视频网| 欧美日本三区| 亚洲国产精品一区制服丝袜| 西西裸体人体做爰大胆久久久 | 99人久久精品视频最新地址| 久久精品国产欧美激情| 欧美亚洲成人网| 亚洲精品少妇30p| 久久这里有精品视频| 午夜亚洲性色视频| 国产精品99免费看 | 国产精品日韩欧美一区| 日韩视频一区二区三区| 欧美成人精品一区二区| 欧美自拍丝袜亚洲| 国产伦一区二区三区色一情| 亚洲特色特黄| 亚洲日本欧美在线| 欧美黄网免费在线观看| 亚洲国产成人精品女人久久久| 久久久精品性| 欧美一区二区三区播放老司机 | 在线观看91精品国产入口| 久久不射电影网| 亚洲欧美另类国产| 国产精品免费网站| 午夜国产精品视频| 午夜在线不卡| 一本色道久久综合亚洲精品按摩 | 欧美日韩午夜激情| 夜夜精品视频| 99re8这里有精品热视频免费| 欧美成人r级一区二区三区| 亚洲国产一区二区三区青草影视| 美女日韩在线中文字幕| 久久久一二三| 91久久午夜| 亚洲全部视频| 国产精品xxxav免费视频| 亚洲你懂的在线视频| 国产精品99久久久久久宅男 | 亚洲欧美视频一区二区三区| 亚洲午夜久久久| 国产丝袜一区二区| 久久永久免费| 免费在线播放第一区高清av| 亚洲精品欧美日韩专区| 99re国产精品| 国产精品自拍小视频| 久久久亚洲国产天美传媒修理工 | 在线视频精品一区| 国产精品亚洲аv天堂网| 欧美中文字幕在线观看| 久久永久免费| 欧美成人r级一区二区三区| 一本综合精品| 亚洲视频你懂的| 国模精品一区二区三区| 欧美大片18| 欧美色精品天天在线观看视频 | 国产精品99免费看| 久久精品一区二区三区四区| 久久人人爽人人爽爽久久| 日韩视频在线你懂得| 亚洲少妇中出一区| 狠狠色噜噜狠狠色综合久| 亚洲成人自拍视频| 国产精品一区视频网站| 欧美电影在线观看| 国产精品九九久久久久久久| 久久久亚洲一区| 欧美日韩国产限制|