難點:題意的理解
其實就是德州撲克的玩法。抽5張牌,然後留5張在桌面,可以選擇丟棄1張牌,然後從桌面抽1張,從桌面抽的不能丟棄。最多丟棄五張牌,也就是把桌上留著的5張牌全拿上。
5張牌的大小比較:
1.straight-flush:同花順。牌面為t(10) - a,這裡不論花色是否同樣;
2.four-of-a-kind:四條,牌面有4個同樣的值。
3.full-house:船牌,牌面有3個同樣值,剩下2個也同樣值。
4.flush:同花,五張牌的花色同樣,不是同花順;
5.straight:順子。五張牌的值連續,a能夠作為1也能夠作為14;
6.three-of-a-kind:三條,牌面有3個同樣的值;
7.two-pairs:兩對。牌面有2個對子。
8.one-pair:一對,牌面有乙個對子,即2個同值;
9.highest-card:大牌,沒有以上牌型。
由於資料量很小,5張牌,所以遞迴肯定不會超時。
ac 0ms
#include #include#include#include#includeusing namespace std;
string hand[5], deck[5], changehand[5];
int c[5], ans = 8;
char ch[9][20] =
;int judge(int cur)
sort(value, value + 5);
int vis[5], t[5];
memset(vis, 0, sizeof(vis));
memset(t, 0, sizeof(t));
for (int i = 0; i < 5; i++)
vis[i] = i + 1;
for (int j = i; j < 5; j++)
}} if (value[0] == '1' && value[1] == ':' && value[2] == ';' && value[3] == '<' && value[4] == '=')
return 0;
if (count(t, t + 5, 4) > 0 || count(t, t + 5, 5) > 0)
return 1;
if (count(t, t + 5, 3) == 3 && count(t, t + 5, 2) == 2)
return 2;
if (kind[0] == kind[1] && kind[1] == kind[2] && kind[2] == kind[3] && kind[3] == kind[4])
return 3;
if (value[0] == value[1] - 1 && value[0] == value[2] - 2 && value[0] == value[3] - 3 && value[0] == value[4] - 4)
return 4;
if (count(t, t + 5, 3) > 0)
return 5;
if (count(t, t + 5, 2) == 4)
return 6;
if (count(t, t + 5, 2) == 2)
return 7;
return 8;
}int dfs(int cur)
} if (ok)
dfs(cur + 1);
} return 0;
}int main()
}
uva 131 有超能力的紙牌玩家
題目 手裡有五張牌,桌上有一堆牌 五張 你可以棄掉手中的k張牌,然後從牌堆中取最上面的k個。比較規則如下 按優先順序排序 1.straight flush 同花順,牌面為t 10 a,這裡不論花色是否相同 2.four of a kind 四條,牌面有4個相同的值 3.full house 船牌,牌...
Applese的超能力
時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 輸入兩個整數n,m 1 n,m 109 10 7 no 首先我們可以知道當m 1時,只有n 1的時候才可以。當m 1時我們有兩種方法可以做。法1 融合硬幣的過程就是n ...
程式設計是一種超能力
programming is a super power 譯文由國內整理編譯 程式設計是一種超能力 在乙個科技和網際網路成為人們日常生活中不可或缺的重要元素的社會裡,會程式設計,就形同有了一種超能力。事實上,乙個程式設計師,不僅能得益於可以很容易的接觸到最新前沿科技,同時還可以利用這些技術把純粹的思...