作為乙個剛剛接觸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 每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑。當地窖及其連線的資料給出之後,某人可以從任一處開始挖地雷,然後可以沿著指出的連線往下挖 僅能選擇一條路徑 當無連線時挖地雷工作結束。設計乙個挖地雷的方案,使...