随笔分类 -  算法

摘要:棋局评估 问题描述 Alice和Bob正在玩井字棋游戏。 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是“X”,Bob放的是“O”,Alice执先。当同一种棋子占据一行、一列或一条对角线的三个格子时,游戏结束,该种棋子的持有者获胜。当棋盘被填满的时候,游戏结束,双方平手。 阅读全文
posted @ 2019-03-02 22:41 喵小喵~ 阅读(889) 评论(0) 推荐(0)
摘要:#include #include #include #include using namespace std; const int MAXV = 1000;//最大顶点数 const int INF = 1000000000; //n为顶点数 //MAXV为最大顶点数 int n,m; double G[MAXV][MAXV]; double d[MAXV];// 顶点到集合S的... 阅读全文
posted @ 2019-02-21 21:18 喵小喵~ 阅读(269) 评论(0) 推荐(0)
摘要:#include #include #include #include #include using namespace std; //Floyd算法 //从i到j,如果以k为中转距离小则更新 const int MAXV = 510; const int INF = 1000000000; int n,m;//n为顶点数,m为边数 int dis[MAXV][MAXV]; v... 阅读全文
posted @ 2019-02-21 21:17 喵小喵~ 阅读(202) 评论(0) 推荐(0)
摘要:练习: PAT A1003 Emergency PAT A1030 Travel Plan 阅读全文
posted @ 2019-02-20 23:46 喵小喵~ 阅读(209) 评论(0) 推荐(0)
摘要:题目练习:PAT A1076 Forwards on Weibo 阅读全文
posted @ 2019-02-20 23:43 喵小喵~ 阅读(119) 评论(0) 推荐(0)
摘要:递推代码 递归实现 阅读全文
posted @ 2019-02-20 23:37 喵小喵~ 阅读(291) 评论(0) 推荐(0)
摘要:题目练习:PAT A1034 Head of a Gang 阅读全文
posted @ 2019-02-19 21:46 喵小喵~ 阅读(195) 评论(0) 推荐(0)
摘要:1 //编写一个 程序,开启3个线程,这3个线程的ID分别为A,B,C 2 //每个线程将自己的ID在屏幕打印10遍 3 //要求输出结果必须按ABC的顺序显示 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 int LOOP = 10; 11 int flag = 0; ... 阅读全文
posted @ 2018-03-12 15:44 喵小喵~ 阅读(192) 评论(0) 推荐(0)
摘要:TEMPLATE METHOD 模板模式 模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子 阅读全文
posted @ 2018-03-10 15:55 喵小喵~ 阅读(162) 评论(0) 推荐(0)
摘要:1 #include 2 #include 3 4 #define LEN 4 //标识从所有数据中选出几个 5 6 //保存结果 7 char res[LEN+1] = { 0 }; 8 //保存有多少个 9 int count = 0; 10 11 //全排列(有重复) 12 //j为当前位置 13 void showall(char *p , int j) 14... 阅读全文
posted @ 2018-03-09 21:49 喵小喵~ 阅读(160) 评论(0) 推荐(0)
摘要:规律性递归 完整代码 阅读全文
posted @ 2018-03-07 20:58 喵小喵~ 阅读(140) 评论(0) 推荐(0)
摘要:思路:按行扫描,一维数组下标代表行,所表示的值代表所在的列,依次递归进行判断 代码: 阅读全文
posted @ 2018-03-06 22:01 喵小喵~ 阅读(132) 评论(0) 推荐(0)
摘要:希尔排序: 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。 由于直接插入排序在元素基本有序的情况下(接近最好情况),效率是非常 阅读全文
posted @ 2018-03-05 22:48 喵小喵~ 阅读(818) 评论(0) 推荐(0)
摘要:运行截图: 结点结构体 1 typedef struct LinkNode 2 { 3 int data; 4 struct LinkNode *pPre; 5 struct LinkNode *pNext; 6 }node,*PNODE; 创建一个结构体保存头部和尾部 typedef struct 阅读全文
posted @ 2018-02-02 14:39 喵小喵~ 阅读(603) 评论(0) 推荐(0)
摘要:双链表结点 //双链表节点 typedef struct LinkNode { int data; struct LinkNode *pPre; struct LinkNode *pNext; }node; 创建一个结构体保存双链表的头和尾 1 typedef struct info 2 { 3 n 阅读全文
posted @ 2018-02-01 20:08 喵小喵~ 阅读(355) 评论(0) 推荐(0)
摘要:运行截图: 节点的结构体定义 typedef struct queue { datatype data; int high;//优先级 struct queue *pNext; }Queue, *PQueue; //入队 入队的时候考虑优先级,优先级大的在前面 PQueue enq(PQueue p 阅读全文
posted @ 2018-02-01 18:09 喵小喵~ 阅读(188) 评论(0) 推荐(0)
摘要:运行截图: 完整代码: 阅读全文
posted @ 2018-02-01 17:24 喵小喵~ 阅读(117) 评论(0) 推荐(0)
摘要:运行截图: 完整代码: 阅读全文
posted @ 2018-02-01 16:48 喵小喵~ 阅读(134) 评论(0) 推荐(0)
摘要:运行截图: 创建记录分配的内存地址大小和地址的结构体 1 struct MEM 2 { 3 void *p; 4 int size; 5 }; 创建管理内存结构体的链表 1 typedef struct LinkNode 2 { 3 struct MEM *pmem;;//保存指针 4 struct 阅读全文
posted @ 2018-02-01 15:23 喵小喵~ 阅读(3944) 评论(0) 推荐(0)
摘要:运行结果 链表定义 typedef struct LinkNode { int data; struct LinkNode *pNext; }node,*PNODE; 环形链表尾部添加 1 //尾部添加 2 PNODE addback(PNODE phead, int data) 3 { 4 //分 阅读全文
posted @ 2018-02-01 11:34 喵小喵~ 阅读(219) 评论(0) 推荐(0)