UVA - 127 "Accordian" Patience
2014-09-26 21:35
423 查看
题目大意:给出52张扑克,要求向左匹配,如果匹配到了就把该扑克放在最上面,问最后有几堆扑克,每堆有几张
解题思路:暴力匹配
解题思路:暴力匹配
#include<cstring> #include<cstdio> struct Card { char c[52][2]; int number; }; Card card[52]; int main() { while(1) { char mark; int count = 52; mark = getchar(); if(mark == '#') break; card[0].c[0][0] = mark; card[0].c[0][1] = getchar(); card[0].number = 1; getchar(); for(int i = 1; i < count; i++) { card[i].c[0][0] = getchar(); card[i].c[0][1] = getchar(); getchar(); card[i].number = 1; } /* for(int i = 0 ; i < count; i++) printf("%s ", card[i].c[0]); */ for(int i = 0; i < count; i++) { if(i - 3 >= 0 && (card[i].c[card[i].number - 1][0] == card[i - 3].c[card[i-3].number-1][0] || card[i].c[card[i].number - 1][1] == card[i - 3].c[card[i-3].number-1][1]) ) {// 判断当前的左边的第三个是否同花色或者同数字 card[i - 3].c[card[i - 3].number][0] = card[i].c[card[i].number - 1][0];//将当前的数字赋值给左边第三个 card[i - 3].c[card[i - 3].number][1] = card[i].c[card[i].number - 1][1];//将当前的花色赋值给左边的第三个 card[i-3].number++; card[i].number--;//移走一位相对减1 if(card[i].number == 0) { for(int j = i; j < count; j++) card[j] = card[j+1];//如果当前的以为空,则向左移,并且count--; count--; } i = -1; } if(i - 1 >= 0 && (card[i].c[card[i].number - 1][0] == card[i - 1].c[card[i-1].number-1][0] || card[i].c[card[i].number - 1][1] == card[i - 1].c[card[i-1].number-1][1]) ) { card[i - 1].c[card[i - 1].number][0] = card[i].c[card[i].number - 1][0]; card[i - 1].c[card[i - 1].number][1] = card[i].c[card[i].number - 1][1]; card[i-1].number++; card[i].number--; if(card[i].number == 0) { for(int j = i; j < count; j++) card[j] = card[j+1]; count--; } i = -1; }// 判断当前的和左边三个是否相同 } printf("%d pile%s remaining: ",count, count != 1? "s":""); for(int i = 0; i < count; i++) { printf("%d",card[i].number); if(i != count - 1) printf(" "); else printf("\n"); } } /* for(int i = 0 ; i < count; i++) { for(int j = 0; j < card[i].number; j++) printf("%s", card[i].c[j]); printf("\n"); } */ return 0; }
相关文章推荐
- UVa 127 - "Accordian" Patience POJ 1214 链表题解
- UVa 127 "Accordian" Patience (模拟链表&栈)
- uva 127 - "Accordian" Patience
- uva127 - "Accordian" Patience
- uva 127 "Accordian" Patience(手风琴纸牌)
- UVA 127 "Accordian" Patience
- UVa 127 - "Accordian" Patience POJ 1214 链表题解
- UVA 127 - "Accordian" Patience---wa 了许久,错误原因见注释!
- uva 127 poj 1214 "Accordian" Patience (栈STL运用)
- UVA 127 - "Accordian" Patience (模拟)
- uva127 "Accordian" Patience poj1214 模拟
- UVA 127 - "Accordian" Patience---用STL做的(TLE超时)
- UVA 127 "Accordian" Patience
- UVa 127 "Accordian" Patience (纸牌游戏)
- UVa 127 - "Accordian" Patience
- UVa 127 "Accordian" Patience
- UVa 127 "Accordian" Patience
- UVa:127 "Accordian" Patience
- uva-127 - "Accordian" Patience
- uva 127 - "Accordian" Patience