思路:二分最大金錢數,最短路需要耗費的血量。
直接二分最大金幣數,無論該金幣數是否出現在圖上,通過二分的區間縮小即金幣範圍縮小,
一定會得到乙個圖上存在的最小的最大金幣數。
最短路耗血量,只需要有一條能滿足該最大金幣數即可。
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include8 #include 9 #include
10 #include 11 #include 12 #include 13
using
namespace
std;
1415 typedef long
long
ll;16
#define inf 1e9
17#define rep(i,j,k) for(int i = (j); i <= (k); i++)
18#define rep__(i,j,k) for(int i = (j); i < (k); i++)
19#define per(i,j,k) for(int i = (j); i >= (k); i--)
20#define per__(i,j,k) for(int i = (j); i > (k); i--)
2122
const
int n = (int)1e4 + 10;23
inthead[n];
24int
f[n];
25int
cnt;
26bool
vis[n];
27ll dis[n];
28int
n,m,tx;
29int
u,v,w;
3031
struct
edgee[5 * n << 1
];36
37struct
node
44};
45 priority_queueque;
4647
void add(int u,int v,int
w)53
54ll dijkstra(ll mid)
61 dis[1] = 0
;62 que.push(node);
6364
intu,v,w;
65while(!que.empty()));79}
80}81}
8283
return
dis[n];84}
8586
intmain()
9899 ll l = 1,r =(ll)1e9;
100ll mid;
101int ans =inf;
102bool ok = false
;103
while(l <=r)
111}
112if(!ok) printf("
afk\n");
113else printf("
%d\n
",ans);
114115
getchar(); getchar();
116return0;
117 }
洛谷 P1462通往奧格瑞瑪的道路
題目背景 background 在艾澤拉斯大陸上有一位名叫歪嘴哦的神奇術士,他是部落的中堅力量 有一天他醒來後發現自己居然到了聯盟的主城暴風城 在被眾多聯盟的士兵攻擊後,他決定逃回自己的家鄉奧格瑞瑪 題目描述 description 在艾澤拉斯,有n個城市。編號為1,2,3,n。城市之間有m條雙向的...
洛谷 P1462 通往奧格瑞瑪的道路
題目背景 在艾澤拉斯大陸上有一位名叫歪嘴哦的神奇術士,他是部落的中堅力量 有一天他醒來後發現自己居然到了聯盟的主城暴風城 在被眾多聯盟的士兵攻擊後,他決定逃回自己的家鄉奧格瑞瑪 題目描述 在艾澤拉斯,有n個城市。編號為1,2,3,n。城市之間有m條雙向的公路,連線著兩個城市,從某個城市到另乙個城市,...
洛谷 P1462 通往奧格瑞瑪的道路
在艾澤拉斯大陸上有一位名叫歪嘴哦的神奇術士,他是部落的中堅力量 有一天他醒來後發現自己居然到了聯盟的主城暴風城 在被眾多聯盟的士兵攻擊後,他決定逃回自己的家鄉奧格瑞瑪 在艾澤拉斯,有n個城市。編號為1,2,3,n。城市之間有m條雙向的公路,連線著兩個城市,從某個城市到另乙個城市,會遭到聯盟的攻擊,進...