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

隨筆 - 87  文章 - 279  trackbacks - 0
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

潛心看書研究!

常用鏈接

留言簿(19)

隨筆分類(81)

文章分類(89)

相冊

ACM OJ

My friends

搜索

  •  

積分與排名

  • 積分 - 221095
  • 排名 - 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 閱讀(512) 評論(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>
            欧美激情久久久久| 美女视频黄免费的久久| 亚洲精品久久视频| 欧美激情综合五月色丁香| 亚洲福利视频二区| 欧美好骚综合网| 欧美破处大片在线视频| 亚洲特级毛片| 欧美亚洲专区| 亚洲国产欧美在线人成| 亚洲精品美女在线观看播放| 国产精品成人一区二区| 久久成人综合网| 牛人盗摄一区二区三区视频| 日韩视频免费观看| 亚洲一区三区电影在线观看| 国产日韩欧美综合一区| 欧美国产日韩一区二区三区| 欧美片第1页综合| 久久国产66| 久久嫩草精品久久久久| 一区二区三区国产| 欧美一区二区在线观看| 亚洲激情视频在线| 亚洲男女自偷自拍图片另类| 尤物九九久久国产精品的特点| 一本久久a久久精品亚洲| 亚洲午夜视频在线观看| 亚洲丰满在线| 午夜精品亚洲一区二区三区嫩草| 狠狠色狠色综合曰曰| 亚洲久久一区| ●精品国产综合乱码久久久久| 亚洲精品久久久久久久久久久| 国产亚洲a∨片在线观看| 亚洲日本一区二区三区| 国产综合精品一区| 一区二区三区四区国产| 亚洲第一福利视频| 欧美一区二区三区久久精品茉莉花| 亚洲精品视频在线观看免费| 午夜精品影院| 亚洲欧美电影院| 欧美国产综合一区二区| 久久久久久久久伊人| 欧美三级欧美一级| 亚洲激情亚洲| 亚洲国产毛片完整版| 久久精品123| 欧美在线免费视屏| 国产精品第三页| 亚洲日本黄色| 亚洲精品中文字幕在线| 久久欧美中文字幕| 久久伊人精品天天| 国产欧美综合一区二区三区| 一本久久青青| 亚洲永久免费| 国产精品国产三级国产aⅴ无密码| 亚洲国产经典视频| 亚洲人成网站精品片在线观看| 久久久亚洲成人| 另类激情亚洲| 在线日韩一区二区| 久久免费高清| 欧美国产一区二区在线观看 | 亚洲精品乱码久久久久久黑人| 好看的亚洲午夜视频在线| 午夜精品在线| 久久手机精品视频| 亚洲福利免费| 欧美高清视频| 日韩午夜三级在线| 亚洲视频在线观看网站| 国产精品hd| 亚洲午夜高清视频| 欧美影院成人| 在线观看亚洲a| 美女网站久久| 日韩写真视频在线观看| 亚洲欧美在线一区二区| 国产精品影院在线观看| 午夜精品亚洲一区二区三区嫩草| 久久精品盗摄| 亚洲国产婷婷香蕉久久久久久99 | 欧美成人午夜77777| 亚洲国产日韩在线| 亚洲一区二区三区精品在线观看| 国产精品高清一区二区三区| 亚洲免费中文字幕| 免费成人黄色av| 一区二区日韩免费看| 国产精品拍天天在线| 欧美伊人久久久久久午夜久久久久| 久久伊人亚洲| 日韩一级黄色大片| 国产日韩一区二区三区在线播放 | 欧美成人午夜激情在线| 一本色道久久综合亚洲精品小说 | 亚洲国产综合在线看不卡| 亚洲天堂av电影| 精品成人国产在线观看男人呻吟| 欧美www在线| 亚洲一区二区三区激情| 欧美成人免费全部| 亚洲制服丝袜在线| 亚洲国产老妈| 国产乱码精品一区二区三区不卡| 麻豆精品国产91久久久久久| 亚洲免费精品| 你懂的亚洲视频| 亚洲免费在线电影| 91久久国产自产拍夜夜嗨| 国产精品一区二区你懂得| 欧美成人黑人xx视频免费观看| 亚洲一区制服诱惑| 亚洲欧洲一区二区三区久久| 久久久精彩视频| 亚洲欧美日韩一区在线观看| 亚洲国产另类久久久精品极度| 国产精品网站在线| 欧美日韩在线亚洲一区蜜芽 | 一本一本久久a久久精品综合麻豆| 久久精品亚洲一区| 亚洲影院在线观看| 99视频超级精品| 亚洲高清影视| 一区免费观看视频| 国产欧美日韩亚洲一区二区三区| 欧美巨乳波霸| 欧美成人精品在线| 免费不卡在线观看| 久久频这里精品99香蕉| 欧美一区二区观看视频| 亚洲一区二区三区免费视频 | 亚洲欧美日韩精品久久| 日韩午夜av电影| 亚洲精品一区在线观看香蕉| 在线观看一区欧美| 精品91久久久久| 永久91嫩草亚洲精品人人| 国内精品免费午夜毛片| 国产主播一区| 一区在线免费观看| 在线看一区二区| 亚洲福利视频网| 亚洲高清在线观看一区| 亚洲高清久久| 亚洲三级视频在线观看| 亚洲毛片一区二区| 一本色道久久综合亚洲二区三区| 日韩亚洲一区二区| 一区二区三区国产| 亚洲免费小视频| 久久国产精品亚洲va麻豆| 久久久久久久久久久久久女国产乱 | 亚洲一区二区三区免费视频| 正在播放日韩| 欧美一级大片在线免费观看| 香蕉亚洲视频| 久久深夜福利| 欧美成人黄色小视频| 亚洲高清久久网| av成人老司机| 久久不射电影网| 欧美高清在线一区二区| 国产精品草草| 经典三级久久| 一区二区免费在线观看| 欧美一区2区视频在线观看| 久久夜色精品国产欧美乱| 亚洲大片av| 亚洲一区免费在线观看| 久久精品水蜜桃av综合天堂| 欧美 亚欧 日韩视频在线| 欧美视频在线观看免费网址| 国产午夜一区二区三区| 亚洲人被黑人高潮完整版| 亚洲一区二区四区| 久久影视精品| 夜夜爽av福利精品导航 | 亚洲已满18点击进入久久| 久久国产精品久久国产精品| 男人的天堂成人在线| 国产精品区一区二区三区| 在线观看欧美日韩国产| 亚洲天堂成人在线视频| 老鸭窝毛片一区二区三区| 99国产精品视频免费观看一公开| 性感少妇一区| 欧美久色视频| 在线播放中文一区| 亚洲欧美日韩国产中文| 欧美激情一区二区三级高清视频| 亚洲视频第一页| 欧美福利精品| 亚洲福利在线看| 久久精品国产99国产精品| 亚洲精品一二区| 免费观看成人网|