poj 1053 Set Me 枚举水题
2017-01-20 09:59
288 查看
//poj 1053 //sep9 #include <iostream> using namespace std; struct Card{ char characters[8]; }tableau[16]; bool judge(int p,int i,int j,int k) { if(tableau[i].characters[p]==tableau[j].characters[p]) if(tableau[i].characters[p]==tableau[k].characters[p]){ return true; } if(tableau[i].characters[p]!=tableau[j].characters[p]) if(tableau[i].characters[p]!=tableau[k].characters[p]) if(tableau[j].characters[p]!=tableau[k].characters[p]) return true; return false; } bool isSet(int i,int j,int k) { for(int p=0;p<4;++p){ if(judge(p,i,j,k)==false) return false; } return true; } void deal(int num) { printf("CARDS: "); for(int i=0;i<num;++i){ printf("%s ",tableau[i].characters); } puts(""); int cnt=0; for(int i=0;i<num;++i) for(int j=i+1;j<num;++j) for(int k=j+1;k<num;++k) if(isSet(i,j,k)){ if(cnt==0) printf("SETS: %d. %s %s %s\n",++cnt,tableau[i].characters,tableau[j].characters,tableau[k].characters); else printf(" %d. %s %s %s\n",++cnt,tableau[i].characters,tableau[j].characters,tableau[k].characters); } if(cnt==0) puts("SETS: *** None Found ***"); } int main() { int i=0; while(1){ char *end; if((end=gets(tableau[i].characters))==NULL||tableau[i].characters[0]<'A'||tableau[i].characters[0]>'Z'){ deal(i); i=0; if(end==NULL){ break; } puts(""); }else ++i; } return 0; }
相关文章推荐
- POJ 1053 Set Me
- POJ 1873 The Fortified Forest 二进制枚举 + 凸包 (final水题)
- POJ 1873 The Fortified Forest 二进制枚举 + 凸包 (final水题)
- poj 2029 (暴力枚举)水题
- POJ 1050 To the Max (最大连续区间和+暴力枚举,水题)
- poj2363(枚举水题)
- poj 1873 The Fortified Forest 凸包+位运算枚举 world final 水题
- POJ 1053 Set Me 已被翻译
- POJ 2586 Y2K Accounting Bug(枚举大水题)
- poj 1062 昂贵的聘礼 【枚举最短路】
- Poj 1833 排列 —— 一道水题的凌乱
- POJ 1054 The Troublesome Frog(枚举 + 剪枝)
- poj 2912 Rochambeau【枚举+种类并查集】
- 滑雪 - POJ 1088 水题
- POJ 2739 Sum of Consecutive Prime Numbers(水题)
- poj 2549 Sumsets (枚举+二分)
- Poj 1321 棋盘问题 (DFS水题)
- Flip Game(枚举)Poj
- poj-3548 Restoring the digits(DFS枚举)
- POJ 3304 Segment 直线与线段相交 + 枚举