日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[NOIP2001]Car的旅行路线

發(fā)布時間:2025/5/22 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [NOIP2001]Car的旅行路线 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述 Description

又到暑假了,住在城市A的Car想和朋友一起去城市B旅游。她知道每個城市都有四個飛機(jī)場,分別位于一個矩形的四個頂點(diǎn)上,同一個城市中兩 個機(jī)場之間有一條筆直的高速鐵路,第I個城市中高速鐵路了的單位里程價格為Ti,任意兩個不同城市的機(jī)場之間均有航線,所有航線單位里程的價格均為t。

那么Car應(yīng)如何安排到城市B的路線才能盡可能的節(jié)省花費(fèi)呢?她發(fā)現(xiàn)這并不是一個簡單的問題,于是她來向你請教。
任務(wù)
找出一條從城市A到B的旅游路線,出發(fā)和到達(dá)城市中的機(jī)場可以任意選取,要求總的花費(fèi)最少。

輸入描述 Input Description

第一行為一個正整數(shù)n(0<=n<=10),表示有n組測試數(shù)據(jù)。
每組的第一行有四個正整數(shù)s,t,A,B。
S(0<S<=100)表示城市的個數(shù),t表示飛機(jī)單位里程的價格,A,B分別為城市A,B的序號,(1<=A,B<=S)。
接下來有S行,其中第I行均有7個正整數(shù)xi1,yi1,xi2,yi2,xi3,yi3,Ti,這當(dāng)中的(xi1,yi1),(xi2,yi2),(xi3,yi3)分別是第I個城市中任意三個機(jī)場的坐標(biāo),T I為第I個城市高速鐵路單位里程的價格。

輸出描述 Output Description

共有n行,每行一個數(shù)據(jù)對應(yīng)測試數(shù)據(jù)。

樣例輸入 Sample Input

1
3 10 1 3
1 1 1 3 3 1 30
2 5 7 4 5 2 1
8 6 8 8 11 6 3

樣例輸出 Sample Output

47.5

分析

最短路的裸題= = 唯一存在的問題就是如何把“四源四終點(diǎn)”的最短路問題轉(zhuǎn)化為復(fù)雜度較低的問題。借用劉汝佳《訓(xùn)練指南》上網(wǎng)絡(luò)流建模的思路,這里不妨建立一個虛擬機(jī)場0,在0和城市A的四個機(jī)場各連一條權(quán)值為0的邊,即可用單源最短路算法求解。另。。因?yàn)轭}目中邊數(shù)E很接近n2,所以用Dijkstra會比SPFA快很多(2s和4s)。。。。別看我,我是寫完SPFA之后才想起來的=_=||

?

?1?//Awsm.Definer?→_→
?2?//E-Mail:?willywu1998@foxmail.com
?3?#include?<cstdio>
?4?#include?<deque>
?5?#include?<cmath>
?6?#include?<memory.h>
?7?#include?<iostream>
?8?#define?MAX?0x3f3f3f3f
?9?#define?mod(x)?(?sqrt((x)?*?(x))?)
10?using?namespace?std;
11?struct?v?{?//vector(location)
12?????int?x,y;
13?????v?(){};v(int?a,int?b):x(a),y(b){};
14?????v?operator?+(const?v&?b)?{return?v(x+b.x,y+b.y);}
15?????v?operator?-(const?v&?b)?{return?v(x-b.x,y-b.y);}
16?????int?operator?*?(const?v&?b)?{return?x*b.x?+?y*b.y;}
17?};
18?inline?v?get4(v?&p1,v?&p2,v?&p3)?{
19?????if((p2?-?p1)?*?(p3?-?p1)?==?0)?return?p2?-?p1?+?p3;
20?????if((p1?-?p2)?*?(p3?-?p2)?==?0)?return?p1?-?p2?+?p3;
21?????return?p1?-?p3?+?p2;
22?}
23?inline?void?getv(v?&k)?{
24?????scanf("%d%d",&k.x,&k.y);
25?}
26?int?n,s,t,A,B;?//the?meaning?of?s will be changed in function "work"...
27?double?dis[404][404]={0};
28?inline?void?makegragh()?{?//build?dis[][]
29?????v?p[404];
30?????int?Ti;
31?????for(int?i=1;i<=s;i+=4)?{
32?????????getv(p[i]),getv(p[i+1]),getv(p[i+2]);scanf("%d",&Ti);
33?????????p[i+3]=get4(p[i],p[i+1],p[i+2]);
34?????????for(int?j=0;j<3;++j)for(int?k=j;k<4;++k)
35?????????????dis[i+j][i+k]=dis[i+k][i+j]=Ti?*?mod((p[i+k]-p[i+j]));
36?????????for(int?j=1;j<i;++j)for(int?k=0;k<4;++k)
37?????????????dis[j][i+k]=dis[i+k][j]=t?*?mod((p[i+k]-p[j]));
38?????}
39?}
40?inline?double?SPFA()?{?
41?????deque?<int>?Q;
42?????int?k?=?4?*?A?-?3,K?=?4?*?B?-?3;
43?????Q.push_front(k),Q.push_front(k+1),Q.push_front(k+2),Q.push_front(k+3);
44?????bool?in_Q[404]?=?{0};in_Q[k]=in_Q[k+1]=in_Q[k+2]=in_Q[k+3]=1;
45?????double?cost[404];
46?????int?i,t;
47?????for(i=1;i<=s;++i)?cost[i]?=?MAX;
48?????cost[k]=cost[k+1]=cost[k+2]=cost[k+3]=0;
49?????while(!Q.empty())?{
50?????????t?=?Q.front();?Q.pop_front();?in_Q[t]?=?0;
51?????????for(i?=?1;i?<=?s;++i)?{
52?????????????if(i==t)continue;
53?????????????if(cost[i]?>?cost[t]?+?dis[i][t])?{?//relax
54?????????????????cost[i]?=?cost[t]?+?dis[i][t];
55?????????????????if(in_Q[i])continue;
56?????????????????if(Q.empty()?||?cost[Q.front()]?<?cost[i])Q.push_back(i);
57?????????????????else?Q.push_front(i);
58?????????????????in_Q[i]?=?1;
59?????????????}
60?????????}
61?????}
62?????return?min(min(cost[K],cost[K+1]),min(cost[K+2],cost[K+3]));
63?}
64?void?work()?{
65?????scanf("%d%d%d%d",&s,&t,&A,&B);s?*=?4;//s?->?sum?of?airports
66?????makegragh();
67?????printf("%.1f\n", SPFA());?//(0)?->?(4*n+1)
68?}
69?int?main(){
70?????#ifdef?DEBUG
71?????freopen("test.in","r",stdin);
72?????#endif
73?????scanf("%d",&n);
74?????while(n--)
75?????????work();
76?????return?0;
77?}

轉(zhuǎn)載于:https://www.cnblogs.com/Asm-Definer/p/3912640.html

總結(jié)

以上是生活随笔為你收集整理的[NOIP2001]Car的旅行路线的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲在线免费 | jzzijzzij亚洲成熟少妇在线观看 久久久精品人妻一区二区三区 | 国产三级91 | 日本污污网站 | 成人久久久精品乱码一区二区三区 | 国产成人自拍网 | 国产精品无码永久免费不卡 | 欧美成人午夜影院 | 正在播放欧美 | av资源新版在线天堂 | 国产一二三区免费视频 | 亚洲永久在线观看 | 三级性生活视频 | 日本精品视频一区 | 黄色大片aaa | 久久精品一区二区三区黑人印度 | 日韩激情电影在线 | 午夜精品久久久久久久蜜桃 | 精品一区电影 | 欧美高清在线视频 | 99热这里| 日本www高清视频 | 男女污污网站 | 亚洲砖区免费 | 久久激情网站 | 日韩在线观看中文字幕 | 国产av无码专区亚洲av毛片搜 | 日本中文在线 | 亚洲国产999| 亚洲不卡在线 | 日韩成人黄色片 | 性日本xxx | 看免费黄色片 | 亚洲色成人网站www永久四虎 | 永久av| 国产又大又黄又爽 | 日日精品 | 秋霞电影一区二区 | 国产99精品视频 | 欧美另类视频在线观看 | 日韩在线你懂的 | 特级免费毛片 | 操欧美老逼 | 最近高清中文在线字幕在线观看 | 揄拍自拍| 一二三区免费 | 嫩草99 | 欧美乱色| 亚洲图片一区二区 | 亚洲精品久久久久久无码色欲四季 | 91免费网站在线观看 | 久草成人在线 | 逼逼av| 丁香花电影在线观看免费高清 | 麻豆乱码国产一区二区三区 | 欧美另类videosbestsex | 国产美女免费 | 国产综合在线观看 | 老妇荒淫牲艳史 | 五月天导航 | 亚洲欧美综合网 | 在线观看污污网站 | 日本美女一级片 | 成人在线手机视频 | 亚洲一区二区在线免费观看 | 日本久热| 久草免费在线播放 | 欧美成人一区二区三区高清 | 国产欧美123 | 九九精品免费 | 国产精品一区二区免费看 | 丁香花电影在线观看免费高清 | 日韩天堂在线观看 | 黄瓜视频污在线观看 | 久久精品这里只有精品 | 日韩中文字幕在线免费观看 | 亚洲高清毛片一区二区 | 国产日批视频 | 少妇高潮惨叫久久久久久 | 日韩视频免费观看高清完整版在线观看 | 精品人妻伦一二三区久 | 亚洲视频精品在线 | 久久这里有精品视频 | 国产精品久久视频 | 天天操狠狠操 | 99ri视频| www.波多野结衣.com | 亚洲人高潮女人毛茸茸 | 中文字幕免费观看视频 | 五月丁香花 | 深田咏美中文字幕 | 99精品在线免费观看 | 99综合久久| 亚洲av永久无码精品一区二区国产 | 18成人免费观看网站下载 | 在线观看亚洲国产 | 免费无码毛片一区二三区 | 日本韩国欧美一区 | 小箩莉末发育娇小性色xxxx |