日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模拟 hihoCoder 1177 顺子

發布時間:2023/12/4 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟 hihoCoder 1177 顺子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

題目傳送門

1 /* 2 模擬:簡單的照著規則做就可以了,把各種情況考慮到,雖然比賽寫的丑了點,但能1Y還是很開心的:) 3 */ 4 #include <cstdio> 5 #include <cstring> 6 #include <iostream> 7 #include <algorithm> 8 #include <cmath> 9 using namespace std; 10 11 const int MAXN = 1e2 + 10; 12 const int INF = 0x3f3f3f3f; 13 struct Card 14 { 15 int v, w; 16 }ca[10]; 17 char s[10][10]; 18 19 bool cmp(Card x, Card y) {return x.v < y.v;} 20 21 int main(void) //hihoCoder 1177 順子 22 { 23 while (scanf ("%s %s %s %s", s[1], s[2], s[3], s[4]) == 4) 24 { 25 int pre = 0; bool ok = true; 26 for (int i=1; i<=4; ++i) 27 { 28 int len = strlen (s[i]); 29 if (s[i][0] == 'A') ca[i].v = 14; 30 else if (s[i][0] == 'J') ca[i].v = 11; 31 else if (s[i][0] == 'Q') ca[i].v = 12; 32 else if (s[i][0] == 'K') ca[i].v = 13; 33 else 34 { 35 if (len == 3) ca[i].v = 10; 36 else ca[i].v = s[i][0] - '0'; 37 } 38 int p = 1; if (len == 3) p = 2; 39 if (s[i][p] == 'S') ca[i].w = 1; 40 else if (s[i][p] == 'H') ca[i].w = 2; 41 else if (s[i][p] == 'C') ca[i].w = 3; 42 else if (s[i][p] == 'D') ca[i].w = 4; 43 if (i == 1) pre = ca[1].w; 44 else 45 { 46 if (ca[i].w != pre) ok = false; //是否四張牌都相同花色 47 } 48 } 49 50 sort (ca+1, ca+1+4, cmp); 51 int flag = 0; bool no = false; 52 for (int i=2; i<=4; ++i) 53 { 54 if (ca[i].v - ca[i-1].v == 1) continue; 55 else if (ca[i].v - ca[i-1].v == 2) 56 { 57 if (!flag) flag = i; 58 else no = true; 59 } 60 else no = true; 61 } 62 63 if (no) puts ("0/1"); //若有來兩個地方不是連續的則不可能是順子 64 else 65 { 66 if (flag) //如果在中間插入牌 67 { 68 if (ok) {puts ("1/16");} 69 else {puts ("1/12");} 70 } 71 else //兩側插牌 72 { 73 if (ok) 74 { 75 if (ca[1].v == 2 || ca[4].v == 14) puts ("1/16"); 76 else puts ("1/8"); 77 } 78 else 79 { 80 if (ca[1].v == 2 || ca[4].v == 14) puts ("1/12"); 81 else puts ("1/6"); 82 } 83 } 84 } 85 } 86 87 return 0; 88 }

?

轉載于:https://www.cnblogs.com/Running-Time/p/4576485.html

總結

以上是生活随笔為你收集整理的模拟 hihoCoder 1177 顺子的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。