9508 諸葛給我牌

2021-06-22 08:57:25 字數 1414 閱讀 7852

時間限制:1000ms  記憶體限制:65535k

題型: 程式設計題   語言: 無限制

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

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

諸葛亮的技能就是能看到牌堆上面的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

//以下為ac了的**
#include#includeint main()

; int maxsum,maxtemp,maxsbpt,total;

char str[1000001]=,c;

scanf("%d",&len);

c=getchar(); //用來接收scanf()後的回車符

for(i=0;imax)

}maxsum+=max;

for(i=1,max=0;i<=total;i++) }

maxsum+=max;

printf("%d\n",maxsum);

return 0;

}

華農acm scau 9508 諸葛給我牌

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

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

description 三國殺是現在流行的桌遊.分為兩方,用牌來進行對戰,每一張牌都有自己的屬性,而每乙個武將 就是玩家 都有自己的技能.每一次玩家都從牌堆裡面抽兩張牌到手牌上,然後進行出牌殺死對方玩家 更具體請參考官方說明 諸葛亮的技能就是能看到牌堆上面的5張牌而可以對這5張牌進行擺放,絕對自己或...

諸葛亮 臥龍

諸葛亮 181 234年 字孔明,號臥龍,琅邪陽都 今山東沂南縣 人。他是漢朝司隸校尉諸葛豐的後代。諸葛亮於漢靈帝光和四年 181年 出生於琅邪陽都的乙個官吏之家。諸葛氏是琅邪的望族,先祖諸葛豐曾在西漢元帝時做過司隸校尉 衛戍京師的長官 諸葛亮父親諸葛圭,字君貢,東漢末年做過泰山郡丞。諸葛亮早年喪父...