洛谷P2243 電路維修

2022-05-10 05:09:39 字數 1013 閱讀 9396

題目位址

轉化為圖論問題

對於每個交叉點(x,y)抽象成節點。與它相鄰的四個點中,可以直接連線的邊權為0,否則邊權為1。

用死了的

spfa解決圖論問題。

#include #include 

#define gc getchar()

#define clean(x,k) memset(x,k,sizeof(x))

#define re register

#define hash(x,y) ((x)*(m+1)+(y))

using

namespace

std ;

intqread ()

return

x ;}

const

int maxn = 505 , inf = 1061109567

;int times , n , m , head[maxn * maxn] , en = 0 , q[maxn * maxn] , mdis[maxn * maxn], vis[maxn *maxn];

struct

edge ;

edge e[maxn * maxn * 4

] ;void adg (int x , int y ,int

l) int

spfa () }}

}return

mdis[hash(n , m)] ;

}int

main ()

else

if (c == '\\'

) }

}int ans =spfa() ;

if (ans < inf)printf ("

%d\n

", ans) ;

else printf ("

no solution\n

") ;

}fclose (stdin) , fclose (stdout) ;

return0;

}

P2243 電路維修

看了眼題解,貌似沒有和我的思路一樣的 所以就來寫一篇題解 首先我不會什麼雙向bfs也懶得寫最短路 所以,就乙個bfs 闖遍天下 先看題 感性理解一下 貌似如 1,2 2,1 1,4 4,1 都到不了 雖然這個麼什麼用 好了,進入主題 首先,bfs是乙個佇列,為了保證結果的真確性,所以存當前花費的陣列...

P2243 電路維修

elf 是來自gliese 星球的少女,由於偶然的原因漂流到了地球上。在她無依無靠的時候,善良的運輸隊員mark 和james 收留了她。elf 很感謝mark和james,可是一直也沒能給他們幫上什麼忙。有一天 mark 和james 的飛行車沒有辦法啟動了,經過檢查發現原來是電路板的故障。飛行車...

洛谷2243 電路維修 廣搜 雙端佇列優化

題目描述 題意不太容易說清楚,還是看鏈結吧。題解 首先感覺是廣搜求最短路的題目。我一開始是沒想好怎麼建圖的,感覺直接亂做複雜度好像很 這個題的建圖還是有點巧妙的,建圖方法是把格點看作是圖上的點,原來的斜線看作是兩點間連邊權為0的邊,每個格仔除了原來的斜線的另一條對角線的兩點之間連一條邊權為1的邊,表...