思路:
代码:
/**
@挖地雷(动态规划)
@author 狂热的coder
*/
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#define NUM_SIZE 50
using namespace std;
void clostDist(int n,bool a[NUM_SIZE][NUM_SIZE],int w[NUM_SIZE]){
int d[NUM_SIZE] = {0}; //d[i]表示从第i个地窖开始挖的最多地雷数
d[n] = w[n]; //底部元素固定
int k1,k2;
cin>>k1>>k2;
while(k1&&k2){
a[k1][k2] = true; //a[i][j]表示第i个地窖和第j个地窖是否是通路
cin>>k1>>k2;
}
int sou[NUM_SIZE] = {0}; //记录每个地窖挖雷的路径
for(int i = n-1;i>=1;i--){ //计算每个地窖挖的最多地雷数
int k = 0,max = 0;
for(int j = i+1;j<=n;j++){
if(a[i][j]&&d[j]>max){
max = d[j];