Gym - 101550C Card Hand Sorting——思维
开始读错题意了,题目要求的是相同花色之间有序,知道这一点以后就枚举一下序列跑几个LCS就好了
#include using namespace std;const int maxn = 100;char str[maxn];int n, cnt[4], a[4][maxn];struct Node { int val, type;}pre[maxn], cur[maxn];void input(int x, int idx) { if (str[1] == 's') a[0][cnt[0]++] = x, pre[idx].type = 0; else if (str[1] == 'h') a[1][cnt[1]++] = x, pre[idx].type = 1; else if (str[1] == 'd') a[2][cnt[2]++] = x, pre[idx].type = 2; else a[3][cnt[3]++] = x, pre[idx].type = 3;}bool cmp1(int x, int y) { return x < y; }bool cmp2(int x, int y) { return x > y; }int dp[maxn][maxn];int main() { scanf("%d", &n); memset(cnt, 0, sizeof(cnt)); for (int i = 0; i < n; i++) { scanf("%s", str); if (isdigit(str[0])) input(str[0]-'0', i), pre[i].val = str[0]-'0'; else if (str[0] == 'T') input(10, i), pre[i].val = 10; else if (str[0] == 'J') input(11, i), pre[i].val = 11; else if (str[0] == 'Q') input(12, i), pre[i].val = 12; else if (str[0] == 'K') input(13, i), pre[i].val = 13; else input(14, i), pre[i].val = 14; } int ans = n; int b[4] = {0, 1, 2, 3}; do { for (int s = 0; s < 16; s++) { int num = 0; for (int i = 0; i < 4; i++) { if (s & (1<
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~