ACM第四次練習 1011

2021-07-13 22:11:02 字數 818 閱讀 3744

思路:這是一道最短路問題,可以用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...