a1105. 挖地雷
時間限制:
1.0s 記憶體限制:
256.0mb
總提交次數:
557ac次數:
206 平均分:
55.33
將本題分享到:
檢視未格式化的試題
提交試題討論
試題**
noip1996 提高組
問題描述
在乙個地圖上有n個地窖(n<=12),每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑。
[題目要求]
當地窖及其連線的資料給出之後,某人可以從任一處開始挖地雷,每個地窖只能經過一次,然後可以沿著指出的連線往下挖(僅能選擇一條路徑),當無連線時挖地雷工作結束。設計乙個挖地雷的方案,使某人能挖到最多的地雷。
輸入格式
第一行乙個數n。
第二行n個數wi表示每個點的地雷數。
隨後n-1行若干個數。第i行第j個數表示i與i+j是否連通。1為連通,0為不連通。
輸出格式 k
1--k
2--……….k
v (挖地雷的順序)
max=ans (挖地雷的數量)
如果有多種方案則輸出字典序最小的方案。
樣例輸入 5
10 8 4 7 6
1 1 1 1
0 0 0
1 1 1
樣例輸出
2-1-3-4-5
max=35
資料規模和約定
n<=12
解析:搜尋。
用c來記錄搜尋順序。
dfs(step,p,w) :step 搜尋了幾個地窖
p 上次搜尋的地窖編號為 p
w 目前總共搜到的地雷。
**:
#include#include#define maxn 12using namespace std;
int a[maxn+10],n,sum=0;
int b[maxn+10],c[maxn+10],ans=0;
bool map[maxn+5][maxn+5],used[maxn+5];
void write_ans()
}
}int main()
for(i=1;i<=n;i++)used[i]=1,c[1]=i,dfs(1,i,a[i]),used[i]=0;
write_ans();
return 0;
}
挖地雷問題
問題描述 在乙個地圖上有n個地窖 n 20 每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑。如圖3 圖3當地窖及其連線的資料給出之後,某人可以從任一處開始挖地雷,然後可以沿著指出的連線往下挖 僅能選擇一條路徑 當無連線時挖地雷工作結束。設計乙個挖地雷的方案,使某人能挖到最多的地雷。輸入檔...
挖地雷問題
目錄dp二 使用一維陣列 在一條公路上埋有若干堆地雷,每堆地雷有一定的數量,地雷堆的編號為1,2,n,例如,埋有地雷數量如下 8 14 2 17 33 26 15 17 19 6此時,地雷的數量可用一維陣列a n 表示。同時,給出地雷堆之間的聯絡,從第1堆開始,它指出挖了此堆之後,還可以選擇繼續往下...
挖地雷問題 DP
挖地雷問題 p3.pas c cpp 問題描述 在乙個地圖上有n個地窖 n 20 每個地窖中埋有一定數量的地雷。同時,給出地窖之間的連線路徑。如圖3 圖3當地窖及其連線的資料給出之後,某人可以從任一處開始挖地雷,然後可以沿著指出的連線往下挖 僅能選擇一條路徑 當無連線時挖地雷工作結束。設計乙個挖地雷...