日韩性视频-久久久蜜桃-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)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 两根大肉大捧一进一出好爽视频 | 欧美在线一二三四区 | 国产午夜精品无码一区二区 | 狠狠精品干练久久久无码中文字幕 | 快播日韩 | jizzzz中国| 国产激情无码一区二区 | 在线观看色视频 | 三度诱惑免费版电影在线观看 | 美国毛片基地 | 欧美人xxx | 中日韩午夜理伦电影免费 | 亚洲高清视频在线播放 | 激情吧| 涩涩视频在线观看免费 | av女大全列表 | 浪潮av一区二区三区 | 中文在线观看免费 | 国产一区二区免费电影 | av乱码| 中文字幕永久 | 一级黄网站 | 日韩在线高清视频 | 91黄视频在线观看 | 国产av天堂无码一区二区三区 | 中文字幕免费视频 | 男人爽女人下面动态图 | www.毛片com| 精品一区av | 国产影视一区二区三区 | 国产精品一区二区亚洲 | 欧美日本国产在线 | 九九亚洲 | 成年人网站免费观看 | av不卡免费在线观看 | 男人天堂综合网 | 师生出轨h灌满了1v1 | 亚洲精品2| 日韩小视频网站 | 女av在线| 男女一进一出视频 | 亚洲深夜福利视频 | 亚洲乱色熟女一区二区三区 | 好男人www社区 | 51妺嘿嘿午夜福利 | 亚洲精品免费在线观看视频 | 4438x全国最大成人网 | a亚洲精品 | 国产性xxxx高清 | 国产一级片| 岛国片免费在线观看 | 亚洲精品视频一区二区三区 | 色欲av伊人久久大香线蕉影院 | 在线观看视频色 | 田中瞳av| 国产激情av | 欧美人体视频一区二区三区 | 日本伦理一区 | 经典三级第一页 | 男人的天堂国产 | 久久久久久久久久久久久久久久久久久久 | 日本夜夜操 | 成人av综合 | 性猛交ⅹxxx富婆视频 | 狠狠操导航 | 国产精品v欧美精品v日韩 | 在线观看免费av网站 | 国产xxxxx| 天天操天天插天天射 | 亚洲欧美日韩系列 | 美女张开腿流出白浆 | 日韩人妻一区二区三区蜜桃 | 国产传媒在线播放 | 国产成人免费在线 | 极品少妇xxxx精品少妇 | 色呦呦网 | 99热在线免费观看 | 色哟哟入口国产精品 | 青青99 | 想要视频在线观看 | 日本激情视频一区二区三区 | 黄色工厂这里只有精品 | 97麻豆| 日韩精品tv | 天天干天天爱天天射 | 国产不卡视频一区二区三区 | 久久99网站| 国产综合欧美 | 草逼视频网 | 麻豆亚洲av熟女国产一区二 | 污漫在线观看 | 国产第1页| 三级性视频 | 免费在线h | 黄色免费观看网站 | 天堂在线中文字幕 | 天天插av | 一本色道久久hezyo加勒比 | 欧美aⅴ在线观看 |