時間限制: 1 sec 記憶體限制: 128 mb
一天小新感覺無聊,就去找他的朋友小新新和小新新新。經過商量,他們決定玩撲克牌,但普通的玩法他們覺得太無聊了,便制定了新的玩法,規則如下:
1.一副牌將大小王捨去,只用其餘的52張牌。a,2,3,4,5,6,7,8,9,10,j,q,k分別代表點數為1,2,3,4,5,6,7,8,9,10,11,12,13。
2.先從牌堆中抽取一張牌,記錄該牌點數為m(該牌不放回),然後按小新新新,小新新,小新的順序輪流拿牌,每人總共拿三張牌。拿完後,將每個人牌的點數加起來,然後對m取餘,得到的點數即為最終的點數,最終點數最大的人即為贏家。
3.每局結束後會重新洗牌。
由於小新總是輸,所以小新新和小新新新決定明牌與小新打(但這是比大小,明不明牌有什麼關係嗎),當小新新新和小新新三張牌都拿完了,小新已經拿了兩張牌時,小新想知道自己是否有機會贏。
第一行輸入乙個整數t(t<=1000),代表有t組資料。
每組資料第一行一張牌面,代表從牌堆中所抽取的那張牌。接下來兩行每行包含三張牌面,中間由空格分開,第一行代表小新新的牌面,第二行代表小新新新的牌面,最後一行包含兩張牌面(代表此時小新手裡的牌)和乙個'?'(代表這張牌還未知)。牌面為a,2,3,4,5,6,7,8,9,10,j,q,k中的一張。
對於每組資料輸出一行,如果小新可能贏,則輸出"i can win";如果在最好情況下,小新的點數可能與小新新或小新新新中點數較高的人點數一樣,輸出"i may not lose",如果小新的點數一定會比小新新或小新新新低,就輸定了,則輸出"i'm a loser"。
2k5 2 4
9 a k
8 6 ?
q5 2 4
9 a k
6 6 ?
i can win模擬一下打牌的過程就行了,先算出來小新新和小新新新點數最大的那乙個max,並把他們抽取的牌給減掉(不放回)。最後遍歷十三種牌,看看有沒有一張牌能使小新的點數大於max,或等於max,最後輸出相應的結果。i may not lose
#include int edge(char a)
switch(a[0])
}int main()}}
a[0] %= m;
a[1] %= m;
maxn = a[0] > a[1] ? a[0] : a[1];
for (int i = 1; i <= 13; i++)}}
if (temp == 1)
printf("i can win\n");
else if (!temp)
printf("i'm a loser\n");
else printf("i may not lose\n");
}return 0;
}
單身三連之一
乙個讓單身狗們崩潰的題 題目大意 有n件物品,一共取d次,一次取的必須少於m件,問共有多少種取法。每個物品相同,有多測,對998244353取模 題解 30 演算法 n,d 20,m 10 簡單的dp。設f i j 為取了i次,共取了j件物品的方案數,則有如下狀態轉移方程 f i j kk max ...
我今天表演加班,一連,二連,三連
是為dos提供的有力的除錯,跟蹤程式執行,檢查系統資料的工具程式,它是在字元介面下以單字元命令方式工作。要很好地使用它必須具備一定的彙編程式設計和硬體基本知識的能力,當然,它為組合語言程式設計師提供了有效的除錯手段,它的功能包括以下幾個方面。1.直接輸入 更改 跟蹤 執行匯程式設計序 2.觀察作業系...
鐘老頭的一鍵三連
題 題意 給出n個點m條邊的圖,逐一刪除每個指定點,問每次刪除前圖是否連通。分析 把指定的序列反過來做就行,對於每個加進來的點,看原本集合中有無進來點的連邊,有就用並查集聯絡起來,表示倆者所處連通塊連通,正著切斷,反著就判斷連通與否就行 每次檢查當前集合是否連通即可,複雜度 o nlogn incl...