小l熱衷於undercards.
在undercards中,有四個格仔。每個格仔要麼是空的,要麼住著乙隻bigbob。
每個bigbob有乙個不超過k的血量;血量減到0視為死亡。那個格仔隨即空
出。當乙隻bigbob受到傷害後,假如它沒有死亡且剩餘血量為t,它會從左數第
乙個空格處召喚乙隻血量為a[t]的bigbob;若沒有空格,則不會召喚。
法術r定義為:從左往右,對每個bigbob造成一點傷害;假如有bigbob死
亡,重複上述效果。
聰明的小l發現,在某些情況下,當他發動法術r時,遊戲會陷入迴圈。
他想求出這樣的初始情形有多少種。
輸入乙個正整數k;
隨後一行k-1個正整數,表示a[1]~a[k-1];
輸出乙個整數,表示答案。
2
2
31
【樣例解釋】
bigbob最多有2血,滿血bigbob受傷會召出新的。
迴圈的初始狀態有:
(2,1,0,0),(1,2,0,0),(2,0,1,0),(2,1,1,0),(0,2,1,0),(1,2,1,0),(2,2,1,0) ,(1,0,2,0),
(0,1,2,0),(1,1,2,0),(2,1,2,0),(2,1,0,1),(0,2,0,1),(1,2,0,1),(0,2,1,1),(1,2,1,1),
(0,0,2,1),(1,0,2,1),(0,1,2,1),(1,1,2,1),(2,1,2,1),(0,2,2,1),(1,2,2,1),(2,1,0,2) ,
(1,2,0,2),(2,0,1,2),(2,1,1,2),(0,2,1,2),(1,2,1,2),(2,2,1,2),(2,1,2,2)
共31種。
【資料範圍】
對於30%的資料,k≤5;
對於70%的資料,k≤10, a[i]=k;
對於100%的資料,k≤15, 1≤a[i]≤k。
#include
#include
#include
using
namespace std;
const
int n=
655360
;int k,ans,at[20]
,rz[n]
,dd[n]
,jyh[n]
;intzh(
int a,
int b,
int c,
int d)
//(算是一種壓縮?)
intcz
(int a,
int b,
int c,
int d)
//大模擬
else pd=1;
}if(b)else pd=1;
}if(c)else pd=1;
}if(d)else pd=1;
}if(!pd)
return-1
;return
zh(a,b,c,d);}
void
dfs(
int x)
//記憶化搜尋if(
!jyh[rz[x]])
dfs(rz[x]);
if(dd[rz[x]]==
2) dd[x]=2
;else dd[x]=1
;}intmain()
恐怖的奴隸主 bob
試題3 恐怖的奴隸主 bob 源 bob.cpp 輸入檔案 bob.in 輸出檔案 bob.out 時間限制 1s 空間限制 512mb 小l熱衷於undercards.在undercards中,有四個格仔。每個格仔要麼是空的,要麼住著乙隻bigbob。每個bigbob有乙個不超過k的血量 血量減到...
單調佇列 恐怖的奴隸主
description 在 爐石傳說 這款遊戲中,有一張隨從卡牌叫做 恐怖的奴隸主 這張卡牌的描述是這樣的 每當該隨從受到傷害且沒有死亡,召喚另乙個恐怖的奴隸主。還有一張卡牌叫做 旋風斬 描述是 對所有隨從造成1點傷害 使用 旋風斬 後,生命值變為0的 恐怖的奴隸主 並不會立即死亡,而會先結算召喚新...
規律 JZOJ 4222 恐怖的奴隸主
description 在 爐石傳說 這款遊戲中,有一張隨從卡牌叫做 恐怖的奴隸主 這張卡牌的描述是這樣的 每當該隨從受到傷害且沒有死亡,召喚另乙個恐怖的奴隸主。還有一張卡牌叫做 旋風斬 描述是 對所有隨從造成1點傷害 使用 旋風斬 後,生命值變為0的 恐怖的奴隸主 並不會立即死亡,而會先結算召喚新...