ACM篇:POJ 2200 --A Card Trick
来源:互联网 发布:摄像头扫描软件 编辑:程序博客网 时间:2024/06/11 00:36
纸牌模拟是最恶心的模拟,没有之一。
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#include <cmath>using namespace std;int card[5];int temp[5];int readchar(){ int t; while (t=getchar()) { if (isdigit(t) || isalpha(t)) break; } return t;}const char VALUES[] = " A234567890JQK";const char SUITS[] = " CDHS";int _turn(int x, bool is_in, bool is_value){ if (is_in) { if (x == '1') { getchar(); return 100; } for (int i = 1; VALUES[i] != '\0'; i++) { if (VALUES[i] == x) return i*10; } for (int i = 1; SUITS[i] != '\0'; i++) { if (SUITS[i] == x) return i; } } else { if (is_value) { if (x == 10) putchar('1'); return VALUES[x]; } else return SUITS[x]; }}void readcard(){ int t; for (int i = 0; i < 5; i++) { card[i] += _turn(readchar(), true, false); card[i] += _turn(readchar(), true, false); }}bool is_ok(int t[],int &d){ d = t[0]-t[1]; if (d % 10) return false; // the same suit d /= 10; if (d < 0) d += 13; if (d >= 1 && d <= 6) return true; else return false;}void _print(int t[], int d, int kase){ if ((d-1) % 3 == 1) { swap(t[2], t[3]); } else if ((d-1) % 3 == 2) { swap(t[2], t[4]); if (d == 3) swap(t[2], t[3]); } if (d == 4) swap(t[3], t[4]); if (d == 5) swap(t[2], t[4]); printf("Problem %d:", kase); for (int i = 0; i < 5; i++) { putchar(' '); putchar(_turn(t[i]/10, false, true)); putchar(_turn(t[i]%10, false, false)); } putchar('\n');}int main(){ int T; int kase = 0; scanf("%d", &T); while (++kase <= T) { bool mark = false; memset(card, 0, sizeof(card)); readcard(); sort(card, card+5); for (int i = 0; i < 5 && !mark; i++) for (int j = 0; j < 5 && !mark; j++) { if (i == j) continue; int cnt = 2; for (int k = 0; k < 5; k++) { if (k == i) temp[0] = card[i]; else if (k == j) temp[1] = card[j]; else temp[cnt++] = card[k]; } int d; if(is_ok(temp, d)) { _print(temp, d, kase); mark = true; } } } return 0;}
0 0
- ACM篇:POJ 2200 --A Card Trick
- poj 2200 A Card Trick(模拟)
- poj 3032.Card Trick
- POJ,3032,Card Trick
- poj 3032 Card Trick
- POJ 3032Card Trick
- POJ-3032 Card Trick
- POJ-3032 Card Trick
- 1018 A Card Trick
- 1018. A Card Trick
- POJ-3032 Card Trick【模拟】
- POJ 一 3032 Card Trick
- E -- POJ 3032 Card Trick
- Sicily 1018. A Card Trick
- sicily 1018. A Card Trick
- 第六届ACM省赛 Card Trick
- poj 3032 nyoj 714 Card Trick
- POJ 3032 Card Trick 纸牌顺序
- Poco:http中传输json对象
- C语言凯撒加密
- 【Augmented Reality】增强现实中的光学透射式头盔显示器的标定深入
- java String StringBuffer StringBuilder
- redis安装
- ACM篇:POJ 2200 --A Card Trick
- 飞思卡尔i.MX 6Quad Android 4.2.2的LVDS屏幕驱动移植
- jq 计算div宽度--innerwidth,outerwidth,width
- linux下nginx+php+mysql环境搭建
- PHP水印类,支持添加图片、文字、填充颜色区域
- 文件和网络定制资源读取方式
- no more pace up and down
- 基于python语言的selenium自动化测试(1)-环境搭建
- 剔除空数组 array_filter()