思路:這是一道最短路問題,可以用dijkstra或spfa解決。求出所有出發的站到所有終點站的最短路徑中的最小值,這樣就重複多次呼叫dijkstra 或 spfa,但如果運用一些技巧就可大大優化,題目中a,b均是大於1的,所以可以在設乙個點作為草兒的家的位置且該點的序號為0,只要把該點與所有始發站之間均建立一條邊且距離為0,那麼只要以點0為源點呼叫一次dijkstra或spfa就可以了,我用的是dijkstra,哎,這道題除錯了很久,就是找不到錯在**,最後突然間想到,可能有的目的地是孤立的點(在這裡指草兒無法到達的點,即前面未出現過的點)
感想:一遍一遍除錯,總會發現錯誤~
**:#include
#include
#include
using namespace std;
const int inf = 1<<30;
int t,s,d,n;
int map[1111][1111];
int vis[1111],cast[1111];
int s[1111],e[1111];
void dijkstra()
{ int i,j,minn,pos;
memset(vis,0,sizeof(vis));
vis[0] = 1;
for(i = 0; i<=n; i++)
cast[i] = map[0][i];
for(i = 1; i<=n; i++)
{ minn = inf;
for(j = 1; j<=n; j++)
{ if(cast[j]
ACM第四次練習 1002
題意 求給定的點之間連通的最小距離。思路 最小生成樹的演算法,其核心是每次取最短的邊,看該邊相連的兩點是否在同乙個集合內,若在則跳過,若不在,就把兩個點合併,判斷與合併都用並查集實現。感想 開始的時候將邊初始化成了0,懵逼了 include include include include int f...
ACM第四次練習 1013
題意 先給出了乙個 這個 也表示路程和花費的模板,然後根據這個對下面的問題進行解決,然後第三行給的是n,m,緊接著就是n行,表示的是0到1的距離,0到2的距離,0到3的距離。依次下去。接下來的m行表示的就是要求的起點和終點了。思路 直接用dijkastra就ok了 稍稍做一點點的變形,要注意的本題資...
函式第四次練習
1.編寫函式實現對長度為10的整數陣列利用氣泡排序法進行由小到大排序。通過main 函式呼叫實現函式功能。includevoid bubblesort int a for i 0 i 10 i int main bubblesort a 2.函式,輸入乙個十六進製制數,輸出相應的十進位制數。incl...