通往奧格瑞瑪的道路

2022-09-09 01:03:19 字數 1935 閱讀 5032

【解題思路】

spfa+二分

二分的條件就是 以當前值為最大值 判斷是否有一條路可以使得

每條邊的收費都小於等於此值 並且 走到終點之後血量不會被扣光

【code】

1 #include 2 #include 3 #include 4 #include 5

#define inf 0x3f3f3f3f3f

6using

namespace

std;

7struct

nodee[100005

];12

int h[100005

],t;

13int

n,m,b,ans;

14int dis[100005

];15

int x[100005],y[100005

];16

int q[100005

],tail,head;

17bool inq[100005

];18

void add(int u,int v,int

x)25

bool spfa(int

mid)44}

45}46}

47if(dis[n]<=b)return

true;48

else

return

false;49

}50intmain()

58int cnt=0;59

for(register int i=1;i<=m;i++)

65 sort(y+1,y+n+1

);66

if(spfa(inf)==false

) 70

int l=1,r=n;

71while(l<=r)

77else l=mid+1

; 78

} 79 printf("

%d\n

",ans);

80return0;

81 }

1 #include 2 #include 3 #include 4 #include 5

#define inf 0x3f3f3f3f3f

6using

namespace

std;

7struct

nodee[100005

];12

int h[100005

],t;

13int

n,m,b,ans;

14int dis[100005

];15

int x[100005],y[100005

];16

int q[100005

],tail,head;

17bool inq[100005

];18

void add(int u,int v,int

x)25

bool spfa(int

mid)44}

45}46}

47if(dis[n]<=b)return

true;48

else

return

false;49

}50intmain()

58int cnt=0;59

for(register int i=1;i<=m;i++)

65 sort(y+1,y+n+1

);66

if(spfa(inf)==false

) 70

int l=1,r=n;

71while(l<=r)

77else l=mid+1

; 78

} 79 printf("

%d\n

",ans);

80return0;

81 }

通往奧格瑞瑪的道路(洛谷 1462)

在艾澤拉斯大陸上有一位名叫歪嘴哦的神奇術士,他是部落的中堅力量 有一天他醒來後發現自己居然到了聯盟的主城暴風城 在被眾多聯盟的士兵攻擊後,他決定逃回自己的家鄉奧格瑞瑪 在艾澤拉斯,有n個城市。編號為1,2,3,n。城市之間有m條雙向的公路,連線著兩個城市,從某個城市到另乙個城市,會遭到聯盟的攻擊,進...

洛谷1462 通往奧格瑞瑪的道路

洛谷1462 通往奧格瑞瑪的道路 題目背景 在艾澤拉斯大陸上有一位名叫歪嘴哦的神奇術士,他是部落的中堅力量 有一天他醒來後發現自己居然到了聯盟的主城暴風城 在被眾多聯盟的士兵攻擊後,他決定逃回自己的家鄉奧格瑞瑪 題目描述 在艾澤拉斯,有n個城市。編號為1,2,3,n。城市之間有m條雙向的公路,連線著...

P1462 通往奧格瑞瑪的道路

在艾澤拉斯大陸上有一位名叫歪嘴哦的神奇術士,他是部落的中堅力量 有一天他醒來後發現自己居然到了聯盟的主城暴風城 在被眾多聯盟的士兵攻擊後,他決定逃回自己的家鄉奧格瑞瑪 在艾澤拉斯,有n個城市。編號為1,2,3,n。城市之間有m條雙向的公路,連線著兩個城市,從某個城市到另乙個城市,會遭到聯盟的攻擊,進...