这道题是类似于一个邻接表的结构,用vector,来模拟,毕竟写那么多的链表还不会,每个排队一个,然后总的所有的牌堆的编号再送入一个vector里面,一开始我看数据很小,没有注意时间复杂度,20分钟过了结果用时1.5秒,就又改进了一下,但是还是不够快,

#include <bits/stdc++.h>#define fi first
#define se second
#define pb push_back
#define mk make_pair
#define sz(x) ((int) (x).size())
#define all(x) (x).begin(), (x).end()using namespace std;typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;int main() {string str;while (cin >> str && str != "#") {vector<string> v[52];v[0].pb(str);for (int i = 1; i < 52; i++) {cin >> str;v[i].pb(str);}vi Hash;for (int i = 0; i < 52; i++) Hash.pb(i);while (1) {int ok = 0;for (int i = 0; i < sz(Hash); i++) {int p1 = Hash[i];string s = v[p1][sz(v[p1]) - 1];if (i >= 3) {int p2 = Hash[i - 3];string t = v[p2][sz(v[p2]) - 1];if (t[0] == s[0] || t[1] == s[1]) {ok = 1;v[p2].pb(s);v[p1].erase(v[p1].begin() + sz(v[p1]) - 1);}}if (!sz(v[p1])) Hash.erase(Hash.begin() + i);if (ok) break;if (i >= 1) {int p2 = Hash[i - 1];string t = v[p2][sz(v[p2]) - 1];if (t[0] == s[0] || t[1] == s[1]) {ok = 1;v[p2].pb(s);v[p1].erase(v[p1].begin() + sz(v[p1]) - 1);}}if (!sz(v[p1])) Hash.erase(Hash.begin() + i);if (ok) break;}if (!ok) break;}if (sz(Hash) == 1) cout << "1 pile remaining:";else cout << sz(Hash) << " piles remaining:";for (int i = 0; i < sz(Hash); i++) cout << " " << sz(v[Hash[i]]);cout << endl;}return 0;
}

UVA127 纸牌游戏 “Accordian“ Patience相关推荐

  1. POJ1214 UVA127 Accordian Patience【vector】

    "Accordian" Patience Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1051 Accep ...

  2. Ubuntu20.10命令行运行纸牌游戏AisleRiot

    Ubuntu20.10命令行运行纸牌游戏AisleRiot 在命令行运行AisleRiot,但是在终端打出软件名之后显示没有该命令. 所以自己找了一下该软件包的存储路径,如下 wanboo@wanbo ...

  3. phaser.min.js_如何使用Phaser 3,Express和Socket.IO构建多人纸牌游戏

    phaser.min.js I'm a tabletop game developer, and am continually looking for ways to digitize game ex ...

  4. Facebook成功打破纸牌游戏Hanabi的AI系统得分纪录

    据外媒Venture Beat报道,Facebook人工智能研究院(Facebook AI Research,FAIR)称,他们推出了一个与纸牌游戏Hanabi相关的最新AI项目.AI系统的得分是24 ...

  5. 用计算机玩纸牌,《玩“纸牌”游戏》教学设计

    [教学目标] 知识目标:1.进一步认识窗口.对话框和菜单命令. 2.让学生掌握纸牌游戏的玩法,使学生从玩中学计算机知识. 3.使学生熟练掌握鼠标器的操作方法. 4.初步使用"帮助" ...

  6. NYOJ 614 纸牌游戏

    纸牌游戏 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 设2n张牌分别标记为1,2,-,n,n+l,-,2n,初始时这2n张牌按其标号从小到大排列. 经一次洗牌后,原来 ...

  7. NYOJ 721 纸牌游戏 简单题

    纸牌游戏CF 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 玩家1和玩家2各出一张牌,看谁大.如果两张牌都不是王牌花色或则都是王牌花色,则牌面大的牌大,如果牌面一样大则 ...

  8. java简单纸牌游戏_2020年最佳2人棋盘游戏:拼凑,Kingdomino等

    假期呆在房子里?这些是打发时间的完美游戏. 由于持续不断的 危机,今年的假期可能看起来要安静 得多.但是安静不一定意味着坏.我们中的大多数人都将放弃大型聚会,如果您要在家中聚会,那么 棋盘游戏 是打发 ...

  9. java简单纸牌游戏_活动回顾 | 畅玩法语纸牌游戏

    11月17日下午,20级小伙伴们迎来了第二次法语角活动!这次外教Anne-Flore Vrac 老师为同学们安排了丰富有趣的法语纸牌游戏,快来一起回顾活动的精彩瞬间吧! 集体游戏一:从1到30 老师首 ...

最新文章

  1. python里元组和列表的共同点和不同点_Python列表和元组的相同点和不同点是什么...
  2. 从命令行运行 MyBatis Generator
  3. 配件都包括什么_婚礼婚庆服务都包括什么
  4. GDB怎么调试使用.sh(shell脚本)启动的程序?(未完成,待测试)
  5. life at University of Liverpool
  6. 数据库的dml、ddl和dcl的概念
  7. HDU 1233 还是畅通工程(最小生成树)
  8. [Redux/Mobx] 你有使用过redux-saga中间件吗?它是干什么的?
  9. 对于我这个软妹子来说,为什么python编程课会越学越有趣呢?
  10. 正规表达式与有限自动机
  11. Java异常处理:如何写出“正确”但被编译器认为有语法错误的程序
  12. python获取读取文件的文件名_python文件名获取文件路径
  13. ubuntu20.4 微信,qq ,等安装安装教程
  14. 阿里专家问答丨人工智能/机器学习技术在电商场景下的应用
  15. 2013中国企业500强榜单出炉
  16. 玩儿计算机最快的人,电脑玩吃鸡最全攻略,让你吃鸡快人一步
  17. 如何分析数据建立数据表
  18. 交互设计师修炼指南!教你从零开始成为优秀交互设计师
  19. Win7系统服务优化攻略
  20. 给github项目贡献代码的操作流

热门文章

  1. 36亿美元!百度收购YY构建“短视频+直播”新模式
  2. 两台Linux主机之间文件传输的几种方式
  3. 【MC9S12G128 memory】
  4. C4D模型工具—坍塌
  5. 计算机知识竞答题活动,计算机学院举行2016消防知识答题竞赛
  6. 更亲民的轻薄旗舰 — 雷蛇灵刃 15 标准版长测
  7. flutter基于fijkplayer封装播放器皮肤
  8. 腾讯2014软件开发笔试题目
  9. 比尔盖茨/UNIX之父/Donald Knuth/Dijkstra等全球IT大师的编程名言
  10. C# 倒计时数秒工具