P1902 刺殺大使

2021-10-24 15:34:17 字數 1347 閱讀 2465

題目

二分二分二分它又來了

p1902 刺殺大使

題目描述

某組織正在策劃一起對某大使的刺殺行動。他們來到了使館,準備完成此次刺殺,要進入使館首先必須通過使館前的防禦迷陣。

迷陣由 n×m 個相同的小房間組成,每個房間與相鄰四個房間之間有門可通行。在第 n 行的 m 個房間裡有 m 個機關,這些機關必須全部開啟才可以進入大使館。而第 1 行的 m 個房間有 m 扇向外開啟的門,是迷陣的入口。除了第 1 行和第 n 行的房間外,每個房間都被使館的安保人員安裝了雷射殺傷裝置,將會對進入房間的人造成一定的傷害。第 i 行第 j 列 造成的傷害值為pi,j

​ (第 1 行和第 n 行的 p 值全部為 0)。

現在某組織打算以最小傷害代價進入迷陣,開啟全部機關,顯然,他們可以選 擇任意多的人從任意的門進入,但必須到達第 n 行的每個房間。乙個士兵受到的傷害值為他到達某個機關的路徑上所有房間的傷害值中的最大值,整個部隊受到的傷害值為所有士兵的傷害值中的最大值。現在,這個恐怖組織掌握了迷陣的情況,他們需要提前知道怎麼安排士兵的行進路線可以使得整個部隊的傷害值最小。

輸入格式

第一行有兩個整數 n,m表示迷陣的大小。

接下來 n 行,每行 m 個數,第 i行第 j 列的數表示pi,j。

輸出格式

輸出乙個數,表示最小傷害代價。

分析

題目說了一大堆,就是要找出受到傷害的最小值,二分來找出個數,再來乙個搜尋判斷。

dfs深搜判斷

#include

using namespace std;

typedef

long

long ll;

const

int n =

1005

;int n, m, ans, flag, maxn, l, r, mid;

int a[n]

[n], vis[n]

[n], t[n]

[n];

void

dfs(

int x,

int y)

int d[4]

[2]=

,,,}

;for

(int i =

0; i <

4; i++)}

}}intmain()

l =0;

r = maxn;

while

(l <= r)

cout << ans;

return0;

}

洛谷p1902刺殺大使題解

題目傳送門 方法 二分答案 dfs 二分乙個mid,此次刺殺的最大傷害,作為判斷條件來dfs,二分,更新。我們二分乙個答案mid來表示乙個界限,如果當前這個格仔的傷害代價比mid小則可以走否則就不走,每次check函式只需判斷能否從第一行走到最後一行即可,因為每一行的每個門都是相連的,所以只要有乙個...

P1902 刺殺大使(二分 dfs)

1902 題目描述 某組織正在策劃一起對某大使的刺殺行動。他們來到了使館,準備完成此次刺殺,要進入使館首先必須通過使館前的防禦迷陣。迷陣由 n m 個相同的小房間組成,每個房間與相鄰四個房間之間有門可通行。在第 nn 行的 m 個房間裡有 m 個機關,這些機關必須全部開啟才可以進入大使館。而第 1 ...

P1902 刺殺大使(BFS 二分答案)

from luogu 題目描述 伊朗伊斯蘭革命衛隊 某恐怖組織 正在策劃一起刺殺行動,他們的目標是沙特駐美大 使朱拜爾。他們來到了沙特駐美使館,準備完成此次刺殺,要進入使館首先必須通過使館前 的防禦迷陣。迷陣由 n m 個相同的小房間組成,每個房間與相鄰四個房間之間有門可通行。在第 n 行的 m 個...