>
學(xué)校機(jī)構(gòu) >
福州博洋軟件開發(fā)與測(cè)試培訓(xùn)學(xué)校 >
學(xué)習(xí)資訊>
n種技能殺怪實(shí)例分析
n種技能殺怪實(shí)例分析
217 2017-05-11
博洋教育今日就業(yè)明星:李祖張就職福建福諾移動(dòng)通信技術(shù)擔(dān)任java工程師
獨(dú)家揭秘明星背后鮮為人知的故事:福建工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè),本科學(xué)歷。在博洋教育參加JAVA軟件項(xiàng)目實(shí)訓(xùn),該生學(xué)習(xí)態(tài)度端正,有比較好的學(xué)習(xí)心態(tài),會(huì)主動(dòng)請(qǐng)教老師同學(xué)。畢業(yè)后經(jīng)過就業(yè)部老師的推薦,現(xiàn)在成功入職福建福諾移動(dòng)通信技術(shù)有限公司。
博洋教育熱線:
QQ:
聯(lián)系人:廖老師
地址:福州市鼓樓區(qū)銅盤路軟件園軟件管委會(huì)大樓3樓網(wǎng)址:
題意:
有n種技能,每種技能只能用一次,怪物有m點(diǎn)血,問最少需要多少種技能可以把怪物殺死。
每種技能有兩個(gè)數(shù)值a和b,a表示攻擊力,b表示當(dāng)怪物的血量小于等于b時(shí),這種技能的攻擊力可以變?yōu)?a.
一點(diǎn)攻擊力可以殺掉怪物一點(diǎn)血。
簡單深搜
加了一個(gè)剪枝后從421MS瞬間降到93MS
code:
#include
#include
structnode{
intM,spell;
}a[11];
inthp,n;
intvis[11];
intans;
voiddfs(intk,intHP){
inti;
if(k>=ans)return;
if(HP<=0){
if(ans>k)
ans=k;
return;
}
for(i=1;i<=n;i++)
if(!vis[i]){
vis[i]=1;
HP<=a[i].M?dfs(k+1,HP-a[i].spell*2):dfs(k+1,HP-a[i].spell);
vis[i]=0;
}
}
intmain(){
inti;
while(~scanf("%d%d",&n,&hp)){
for(i=1;i<=n;i++)
scanf("%d%d",&a[i].spell,&a[i].M);
ans=12;
memset(vis,0,sizeof(vis));
dfs(0,hp);
if(ans!=12)printf("%d\n",ans);
elseprintf("-1\n");
}
return0;
}
#include
#include
structnode{
intM,spell;
}a[11];
inthp,n;
intvis[11];
intans;
voiddfs(intk,intHP){
inti;
if(k>=ans)return;
if(HP<=0){
if(ans>k)
ans=k;
return;
}
for(i=1;i<=n;i++)
if(!vis[i]){
vis[i]=1;
HP<=a[i].M?dfs(k+1,HP-a[i].spell*2):dfs(k+1,HP-a[i].spell);
vis[i]=0;
}
}
intmain(){
inti;
while(~scanf("%d%d",&n,&hp)){
for(i=1;i<=n;i++)
scanf("%d%d",&a[i].spell,&a[i].M);
ans=12;
memset(vis,0,sizeof(vis));
dfs(0,hp);
if(ans!=12)printf("%d\n",ans);
elseprintf("-1\n");
}
return0;
}
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)服務(wù)號(hào)