ACM複習(32)9508 諸葛給我牌

2021-08-15 14:17:36 字數 1230 閱讀 8531

description

三國殺是現在流行的桌遊..分為兩方,用牌來進行對戰,每一張牌都有自己的屬性,而每乙個武將(就是玩家)都有自己的技能.

每一次玩家都從牌堆裡面抽兩張牌到手牌上,然後進行出牌殺死對方玩家(更具體請參考官方說明)..

諸葛亮的技能就是能看到牌堆上面的5張牌而可以對這5張牌進行擺放,絕對自己或者下家得到的牌.

而甄姬的技能就是一開始可以在牌堆裡面摸牌,只要摸到的是黑色牌都可以拿到手牌上,一直摸到不是黑色的牌為止.

現在諸葛亮和甄姬剛好坐在一起,甄姬成為了諸葛亮的下家.現在諸葛亮想讓甄姬拿到盡可能多的牌.應該如何擺放牌呢

現在將諸葛亮的技能加強點(5張太少了,不夠給力),他可以看到牌堆的所有牌,但他不能抽牌,而只能去掉牌堆裡面的某些牌,而去掉牌要符合以下規則

1. 從牌頂一直拿

2. 從牌中間拿出連續的一段牌

這兩個規則最多只能用一次或者不用

而且這技能是在諸葛亮拿完自己的手牌才發動的,問甄姬最多能拿到多少張呢

由於牌要不是紅,要不是黑,則0表示黑,1表示紅

例如 00011101100111000000

如果我把前面的111拿走,那麼甄姬就能拿到前面的4個0

如果我把000111和之後的11拿走,則變為0(11)00111000000,則甄姬可以拿到前面的3張,括號表示已經拿走

但如果我把前面的000111011和最後的111拿走,就甄姬就可以拿到000000000. 8張了

那如果把中間的11101100111拿走呢? 我們可以拿到9張。

記住牌頂和中間都只能拿一次或者不拿

輸入格式

第一行表示串長n(1<=n<=1000000)

第二行是長度為n的01串表示牌堆裡面的牌

輸出格式

乙個數表示最多可以拿到的牌數

輸入樣例

20 00011101100111000000

輸出樣例

9其實就是找出兩個最長的零串而已

#include

int main()

else

if(count > l1)

l1 = count;

count = 0;

}else

count ++;

}printf("%d\n", count > l1 ? count + l2 : l1 + l2);

return

0;}

9508 諸葛給我牌

時間限制 1000ms 記憶體限制 65535k 題型 程式設計題 語言 無限制 三國殺是現在流行的桌遊.分為兩方,用牌來進行對戰,每一張牌都有自己的屬性,而每乙個武將 就是玩家 都有自己的技能.每一次玩家都從牌堆裡面抽兩張牌到手牌上,然後進行出牌殺死對方玩家 更具體請參考官方說明 諸葛亮的技能就是...

華農acm scau 9508 諸葛給我牌

題目9508 諸葛給我牌 時間限制 1000ms 記憶體限制 65535k 提交次數 0 通過次數 0 題型 程式設計題 語言 g gcc description 三國殺是現在流行的桌遊.分為兩方,用牌來進行對戰,每一張牌都有自己的屬性,而每乙個武將 就是玩家 都有自己的技能.每一次玩家都從牌堆裡面...

ACM複習(24)8623 龍龍

description 在比賽的時候,1y 1 次ac 是很值得高興的事情。但很多大牛總會因為很弱智的錯誤先wa 一次,再ac。而很多時候,這點罰時的差距使得他們與金牌無緣。弱智錯誤系列中最顯著的就是忘記加龍龍。龍龍外國人叫它作long long,表示64位整數,輸入與輸出64位整數則可以使用例如 ...