51Nod 1489 蜥蜴和地下室

2021-08-14 13:10:31 字數 836 閱讀 9525

這道題 一開始想的是貪心 但是想歪了 每次打對傷害總體貢獻最大的乙個 因為小資料 所以隨便怎麼搞 然後 wa了幾發 又想到小資料列舉還能有什麼 於是dfs搜尋… …

這道我想的是列舉搜尋路徑 因為能對當前loc位置產生傷害只能有三個位置loc-1,loc,loc+1 所以在打後面的敵人之前 可以把他前面的兩個位置及之前敵人打掉

綜上所述 如果要打掉當前位置的敵人 要麼是打他前面位置的敵人 順手打掉的

要麼是就打他這個位置 要麼在打他後面那個位置的敵人 一定要打掉的

所以 **如下

#include

#include

using namespace std;

const int inf = 0x3f3f3f;

int life[20];

int n,a,b;

int ans;

void dfs(int

time,int loc)

if(life[loc-1]<0) dfs(time,loc+1);

int t=0;

if(life[loc-1]>=0)

inttimes = life[loc]/a+1;

if(life[loc]>=0 && t<=times)

}return;

}int main()

while(life[n-1]>=0)

dfs(start,1);

cout << ans << endl;

}

51Nod 1489 蜥蜴和地下室

1489 蜥蜴和地下室 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 哈利喜歡玩角色扮演的電腦遊戲 蜥蜴和地下室 此時,他正在扮演乙個魔術師。在最後一關,他必須和一排的弓箭手戰鬥。他唯一能消滅他們的辦法是乙個火球咒語。如果哈利用他的火球咒語...

51nod 1489蜥蜴和地下室

1489 蜥蜴和地下室 codeforces 基準時間限制 1 秒 空間限制 131072 kb 分值 10 難度 2級演算法題 哈利喜歡玩角色扮演的電腦遊戲 蜥蜴和地下室 此時,他正在扮演乙個魔術師。在最後一關,他必須和一排的弓箭手戰鬥。他唯一能消滅他們的辦法是乙個火球咒語。如果哈利用他的火球咒語...

51nod 1489 蜥蜴和地下室

1489 蜥蜴和地下室 因為兩個端點的弓箭手 即標記為1和n的弓箭手 與你相隔較遠,所以火球不能直接攻擊他們。但是哈利能用他的火球攻擊其他任何弓箭手。每個弓箭手的生命值都已知。當乙個弓箭手的生命值小於0時,這個弓箭手會死亡。請求出哈利殺死所有的敵人所需使用的最少的火球數。如果弓箭手已經死亡,哈利仍舊...