題解 P2196 挖地雷

2022-09-20 00:24:13 字數 839 閱讀 7376

作為乙個剛剛接觸oi的蒟蒻,看到題目想都沒想就寫了乙個搜尋,列舉每乙個地窖作為起點再比較答案然後記錄下最優的,雖然此方法十分地暴力,但由於n<=20所以仍然能ac的

#include #include 

#include

using

namespace

std;

const

int maxn = 20

;int

n, max1, ans, depth, final;

//數量,最大的地雷數,每乙個作為起點的最大價值,每一次地窖數,最優的地窖數

inta[maxn], f[maxn], vis[maxn], path[maxn];

//每乙個地窖的地雷數,最終的答案,是否訪問過,每一次的路徑

vector

g[maxn];

//標記相連

bool dfs(int

x)

if(vis[x]) //

已訪問過

vis[x] = true; //

標記 path[depth] =x;

++depth;

for(int i=0; i//

訪問和當前相鄰的每個節點

}--depth;

return

false;}

intmain()

}for(int i=1; i<=n; i++)

}for(int i=0; i<=final; i++)

cout

<< endl

}

剛學完搜尋的蒟蒻的第一道獨立完成的搜尋題,以此紀念!

洛谷P2196 挖地雷

仔細看題 其實就是數塔問題的變種,多了乙個能否訪問的條件。所以就按照他的思路來就行了,多乙個way來儲存兩個地點是否能夠到達。關於選擇的輸出,用path陣列儲存前驅即可,include using namespace std const int nmax 25 int mine nmax int w...

洛谷P2196 挖地雷

題目鏈結 給你n個地窖和路徑,求最多能挖多少雷,和挖雷最多的路徑。第一行乙個整數n表示有n個地窖 第二行有n個整數表示每個地窖的地雷數 以下有若干行,每行有兩個數x,y表示x可以到y,保證x小於y。最後一行有兩個0,表示輸入結束 第一行輸出挖地雷的順序。第二行為最多挖出的地雷數 輸入 1 5 10 ...

luoguP2196 挖地雷 題解

題目背景 noip1996提高組第三題 題目描述 在乙個地圖上有n個地窖 n 20 每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑。當地窖及其連線的資料給出之後,某人可以從任一處開始挖地雷,然後可以沿著指出的連線往下挖 僅能選擇一條路徑 當無連線時挖地雷工作結束。設計乙個挖地雷的方案,使...