HDU 4930 Fighting the Landlords(扯淡模拟题)
Fighting the Landlords
大意:
斗地主。。。。 分别给出两把手牌,肯定都合法。每张牌大小顺序是Y (i.e. colored Joker) > X (i.e. Black & White Joker) > 2 > A (Ace) > K (King) > Q (Queen) > J (Jack) > T (10) > 9 > 8 > 7 > 6 > 5 > 4 > 3。
给你8种组合:1.单牌:一张牌
2.对子:两张相同的牌
3.三重奏(百度翻译出来的。。):三张相同的牌
4.三带一:三张相同的带一张牌(大小只考虑前面的牌,不考虑带的)
5.三带二:三张相同的带两张牌,带的两张牌可以一样,也可以不一样(大小只考虑前面的牌,不考虑带的)
6.四带二:四个相同的带两张牌,带的两张牌可以一样,也可以不一样(大小只考虑前面的牌,不考虑带的)
7.炸弹:四个相同的一起出,不带任何东西(能管除了核弹所有的)
8.核弹:大小王一起(能管所有的牌)
然后规则其实很简单,就是你先出,如果你出了之后,手牌没有了,输出Yes,或者你出了之后,对方没有比你出的这一把大的,也输出Yes,剩下就是输出No了。。。
思路:
比赛的时候一直卡1007,T到死。。。。 也没来的及管这个题。。其实不难。。
主要注意几个坑的地方就行:
1.不能四带一。
2.炸弹可以干掉四带二
3.理解好题意什么时候输出Yes
发这篇博客的目的不是粘代码,代码写的实在是太挫了。。。。 要看的话只看题目描述吧。。。。就是想记录一下这个题-。- 我好无聊~
1 #include <stdio.h> 2 #include <string.h> 3 4 int Hash1[20], Hash2[20]; 5 int T; 6 char s1[20], s2[20]; 7 8 int main() 9 { 10 scanf("%d", &T); 11 while(T--){ 12 memset(Hash1, 0, sizeof(Hash1)); 13 memset(Hash2, 0, sizeof(Hash2)); 14 scanf("%s", s1); 15 int len1 = strlen(s1); 16 for(int i = 0; i < len1; ++i){ 17 if(s1[i] >= '3' && s1[i] <= '9'){ 18 Hash1[s1[i]-'0']++; 19 } 20 else if(s1[i] == 'T'){ 21 Hash1[10]++; 22 } 23 else if(s1[i] == 'J'){ 24 Hash1[11]++; 25 } 26 else if(s1[i] == 'Q'){ 27 Hash1[12]++; 28 } 29 else if(s1[i] == 'K'){ 30 Hash1[13]++; 31 } 32 else if(s1[i] == 'A'){ 33 Hash1[14]++; 34 } 35 else if(s1[i] == '2'){ 36 Hash1[15]++; 37 } 38 else if(s1[i] == 'X'){ 39 Hash1[16]++; 40 } 41 else if(s1[i] == 'Y'){ 42 Hash1[17]++; 43 } 44 } 45 // for(int i = 3; i <= 17; ++i){ 46 // printf("%d ", Hash1[i]); 47 // } 48 scanf("%s", s2); 49 int len2 = strlen(s2); 50 for(int i = 0; i < len2; ++i){ 51 if(s2[i] >= '3' && s2[i] <= '9'){ 52 Hash2[s2[i]-'0']++; 53 } 54 else if(s2[i] == 'T'){ 55 Hash2[10]++; 56 } 57 else if(s2[i] == 'J'){ 58 Hash2[11]++; 59 } 60 else if(s2[i] == 'Q'){ 61 Hash2[12]++; 62 } 63 else if(s2[i] == 'K'){ 64 Hash2[13]++; 65 } 66 else if(s2[i] == 'A'){ 67 Hash2[14]++; 68 } 69 else if(s2[i] == '2'){ 70 Hash2[15]++; 71 } 72 else if(s2[i] == 'X'){ 73 Hash2[16]++; 74 } 75 else if(s2[i] == 'Y'){ 76 Hash2[17]++; 77 } 78 } 79 // for(int i = 3; i <= 17; ++i){ 80 // printf("%d ", Hash2[i]); 81 // } 82 if(Hash1[16] == 1 && Hash1[17] == 1){ 83 printf("Yes\n"); 84 continue; 85 } 86 87 ///clear 88 int cnt = 0; 89 for(int i = 3; i <= 17; ++i){ 90 if(Hash1[i] > 0){ 91 cnt++; 92 } 93 } 94 if(cnt == 1){ 95 printf("Yes\n"); 96 continue; 97 } 98 else if(cnt == 2){ 99 int t1 = 0, t2 = 0; 100 for(int i = 3; i <= 17; ++i){ 101 if(Hash1[i] > 0){ 102 if(t1 == 0){ 103 t1 = i; 104 } 105 else { 106 t2 = i; 107 } 108 } 109 } 110 if(Hash1[t1] == 3 && Hash1[t2] == 1){ 111 printf("Yes\n"); 112 continue; 113 } 114 if(Hash1[t2] == 3 && Hash1[t1] == 1){ 115 printf("Yes\n"); 116 continue; 117 } 118 if(Hash1[t1] == 3 && Hash1[t2] == 2){ 119 printf("Yes\n"); 120 continue; 121 } 122 if(Hash1[t2] == 3 && Hash1[t1] == 2){ 123 printf("Yes\n"); 124 continue; 125 } 126 if(Hash1[t1] == 4 && Hash1[t2] == 2){ 127 printf("Yes\n"); 128 continue; 129 } 130 if(Hash1[t2] == 4 && Hash1[t1] == 2){ 131 printf("Yes\n"); 132 continue; 133 } 134 } 135 else if(cnt == 3){ 136 int t1 = 0, t2 = 0, t3 = 0; 137 for(int i = 3; i <= 17; ++i){ 138 if(Hash1[i] > 0){ 139 if(t1 == 0){ 140 t1 = i; 141 } 142 else if(t2 == 0){ 143 t2 = i; 144 } 145 else { 146 t3 = i; 147 } 148 } 149 } 150 if(Hash1[t1] == 4 && Hash1[t2] == 1 && Hash1[t3] == 1){ 151 printf("Yes\n"); 152 continue; 153 } 154 else if(Hash1[t1] == 1 && Hash1[t2] == 4 && Hash1[t3] == 1){ 155 printf("Yes\n"); 156 continue; 157 } 158 else if(Hash1[t1] == 1 && Hash1[t2] == 1 && Hash1[t3] == 4){ 159 printf("Yes\n"); 160 continue; 161 } 162 } 163 164 165 if(Hash2[16] == 1 && Hash2[17] == 1){ 166 printf("No\n"); 167 continue; 168 } 169 170 bool flag = false; 171 ///bomb 172 for(int i = 15; i >= 3; --i){ 173 if(Hash1[i] == 4){ 174 int j; 175 for(j = i+1; j <= 15; ++j){ 176 if(Hash2[j] == 4){ 177 break; 178 } 179 } 180 if(j == 16){ 181 flag = true; 182 } 183 } 184 } 185 if(flag){ 186 printf("Yes\n"); 187 continue; 188 } 189 190 ///Four-Dual 191 for(int i = 15; i >= 3; --i){ 192 if(Hash1[i] == 4 && len1 >= 6){ 193 int j; 194 for(j = i+1; j <= 15; ++j){ 195 if(Hash2[j] == 4 && len2 >= 6){ 196 break; 197 } 198 } 199 int k; 200 for(k = 3; k <= 15; ++k){ 201 if(Hash2[k] == 4){ 202 break; 203 } 204 } 205 if(j == 16 && k == 16){ 206 flag = true; 207 //printf("Four-Dual\n"); 208 } 209 } 210 } 211 if(flag){ 212 printf("Yes\n"); 213 continue; 214 } 215 216 ///Trio-Pair 217 for(int i = 15; i >= 3; --i){ 218 if(Hash1[i] == 3){ 219 for(int j = 3; j <= 15; ++j){ 220 if(Hash1[j] == 2){ 221 int k; 222 int t = 0; 223 for(k = i+1; k <= 15; ++k){ 224 if(Hash2[k] == 3){ 225 for(int l = 3; l <= 15; ++l){ 226 if(Hash2[l] == 2){ 227 t = 1; 228 break; 229 } 230 } 231 if(t == 1){ 232 break; 233 } 234 } 235 } 236 int p; 237 for(p = 3; p <= 15; ++p){ 238 if(Hash2[p] == 4){ 239 break; 240 } 241 } 242 if(k == 16 && p == 16){ 243 flag = true; 244 //printf("Trio-Pair\n"); 245 } 246 } 247 } 248 } 249 } 250 if(flag){ 251 printf("Yes\n"); 252 continue; 253 } 254 255 ///Trio-Solo 256 for(int i = 15; i >= 3; --i){ 257 if(Hash1[i] == 3 && len1 >= 4){ 258 int j; 259 for(j = i+1; j <= 15; ++j){ 260 if(Hash2[j] == 3 && len2 >= 4){ 261 break; 262 } 263 } 264 int k; 265 for(k = 3; k <= 15; ++k){ 266 if(Hash2[k] == 4){ 267 break; 268 } 269 } 270 if(j == 16 && k == 16){ 271 flag = true; 272 //printf("Trio-Solo\n"); 273 } 274 } 275 } 276 if(flag){ 277 printf("Yes\n"); 278 continue; 279 } 280 281 ///Trio 282 for(int i = 15; i >= 3; --i){ 283 if(Hash1[i] == 3){ 284 int j; 285 for(j = i+1; j <= 15; ++j){ 286 if(Hash2[j] >= 3){ 287 break; 288 } 289 } 290 int k; 291 for(k = 3; k <= 15; ++k){ 292 if(Hash2[k] == 4){ 293 break; 294 } 295 } 296 if(j == 16 && k == 16){ 297 flag = true; 298 //printf("Trio\n"); 299 } 300 } 301 } 302 if(flag){ 303 printf("Yes\n"); 304 continue; 305 } 306 307 ///Pair 308 for(int i = 15; i >= 3; --i){ 309 if(Hash1[i] == 2){ 310 int j; 311 for(j = i+1; j <= 15; ++j){ 312 if(Hash2[j] >= 2){ 313 break; 314 } 315 } 316 int k; 317 for(k = 3; k <= 15; ++k){ 318 if(Hash2[k] == 4){ 319 break; 320 } 321 } 322 if(j == 16 && k == 16){ 323 flag = true; 324 //printf("Pair\n"); 325 } 326 } 327 } 328 if(flag){ 329 printf("Yes\n"); 330 continue; 331 } 332 333 ///Solo 334 for(int i = 17; i >= 3; --i){ 335 if(Hash1[i] == 1){ 336 int j; 337 for(j = i+1; j <= 17; ++j){ 338 if(Hash2[j] >= 1){ 339 break; 340 } 341 } 342 int k; 343 for(k = 3; k <= 15; ++k){ 344 if(Hash2[k] == 4){ 345 break; 346 } 347 } 348 if(j == 18 && k == 16){ 349 flag = true; 350 //printf("Solo\n"); 351 } 352 } 353 } 354 if(flag){ 355 printf("Yes\n"); 356 continue; 357 } 358 printf("No\n"); 359 } 360 361 return 0; 362 }
HDU 4930
转载于:https://www.cnblogs.com/Silence-AC/p/3898049.html
HDU 4930 Fighting the Landlords(扯淡模拟题)相关推荐
- hdu 2629 Identity Card (字符串解析模拟题)
这题是一个字符串模拟水题,给12级学弟学妹们找找自信的,嘿嘿; 题目意思就是要你讲身份证的上的省份和生日解析出来输出就可以了: http://acm.hdu.edu.cn/showproblem.ph ...
- 从何处入手 ——小议流程制度规范改进时各种宏观微观,定位执行间的扯淡之处...
从何处入手 --小议流程制度规范改进时各种宏观微观,定位执行间的扯淡之处 看待同样一件事情,不同的人有不同的立场和角度,是非常正常的事儿.温瑞安在<说英雄谁是英雄>系列中,在苏梦枕刚结识白 ...
- 从何处入手——小议流程制度规范改进时各种宏观微观,定位执行间的扯淡之处...
从何处入手 --小议流程制度规范改进时各种宏观微观,定位执行间的扯淡之处 看待同样一件事情,不同的人有不同的立场和角度,是非常正常的事儿.温瑞安在<说英雄谁是英雄>系列中,在苏梦枕刚结识白 ...
- CSAPP第五章就在“扯淡”!
"你的时间有限,所以不要为别人而活.不要被教条所限,不要活在别人的观念里.不要让别人的意见左右自己内心的声音.最重要的是,勇敢的去追随自己的心灵和直觉,只有自己的心灵和直觉才知道你自己的真实 ...
- 斯诺登:FBI需要苹果帮助才能解锁iPhone完全扯淡
今天由非盈利机构Common Cause主持召开的"Blueprint for Democracy"(民主蓝图)峰会上,爱德华·斯诺登(Edward Snowden)就监控.个人自 ...
- HDU 4121 Xiangqi 模拟题
题目: http://acm.hdu.edu.cn/showproblem.php?pid=4121 首先对标题赞一个,非要叫 "Xiangqi" 而不是 "中国象棋&q ...
- 空谈Saas都扯淡,让你看看真正的云计算
最近"虚拟化"的话题似乎热度有所降低,而"云计算"的概念却不断升温,就连Vmware的新的服务器虚拟化产品,都要加上一个第一款"云计算"操作 ...
- 软件项目周报_有关细节、效率、周报和扯淡
1.有关细节 聊聊工作中的细节.有两个视角,「下属」和「上级」.大部分人同时有这两个角色,但屁股转变就有不同看法.对于下属来说,细节是自己的事,上级管得多会很让人烦,而且觉得这个上级很无能,只会盯着细 ...
- 教育|我在美国读博士才发现,美国高等教育如此残酷,以前的感觉完全是扯淡...
如果说一百多年前,林则徐呼吁中国要睁眼看世界,那么现在我们国人仍需要透过迷雾看世界,不要被外国的种种假象所迷惑,不要再像生活在井底的青蛙一样低估自己没有看到的东西. 总之,我们的高等教育缺少了监督鞭策 ...
最新文章
- -bash: /usr/java/jdk1.8.0_101/bin/java: Permission denied
- LINUX开启SNMP方法
- 06--swift之闭包
- 简单的js文本框提示语
- ubuntu网站做图像外链
- oracle redo 200mb,Oracle的redo log在各场景下的恢复
- 我们变成了最小的,当我们发现不了最弱小的时候
- 腾讯,创新工场,淘宝等公司最新面试三十题(第171-200题)
- highcharts.js两种数据绑定方式和异步加载数据的使用
- 法制教育对未成年人的作用和实施字体
- 机械设计专业课程C语言,c语言项目总结ppt[工作范文](20页)-原创力文档
- 分子动力学模拟AMBER参数意义
- Java语言基础:IPO编程模式
- f018计算机辅助设计是什么,F018,丝印Marking-电子元件丝印查询
- 计算机基础知识上机题,计算机基础上机题库.doc
- 详解区块链中EOS的作用。
- Uniapp返回上一页触发页面更新
- 数据安全--14--隐私保护治理浅析
- IBM SPSS Modeler 【5】 关联分析
- 码农故事2——岁前落脚得安定 年后求职寻转机
热门文章
- nginx log_format 中的变量
- JavaScript Blob对象
- “git pull” 强制覆盖本地文件
- json传输二进制的方案(python版)
- html代码常用软件,HTML代码实际应用讲解
- linux电脑系统投到电视,教你如何在Linux操作系统下观看电视节目
- python soup findall 第几个元素_python – 如何在BeautifulSoup中获取所有父标签的列表?...
- php 开启mail函数 wo,php mail 函数发送邮件
- python argparse type_python argparse(参数解析模块)
- 内蒙古广播电视大学计算机专修学院电话,内蒙古广播电视大学