随笔分类 - 算法
摘要:棋局评估 问题描述 Alice和Bob正在玩井字棋游戏。 井字棋游戏的规则很简单:两人轮流往3*3的棋盘中放棋子,Alice放的是“X”,Bob放的是“O”,Alice执先。当同一种棋子占据一行、一列或一条对角线的三个格子时,游戏结束,该种棋子的持有者获胜。当棋盘被填满的时候,游戏结束,双方平手。
阅读全文
摘要:#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的...
阅读全文
摘要:#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...
阅读全文
摘要:练习: PAT A1003 Emergency PAT A1030 Travel Plan
阅读全文
摘要:题目练习:PAT A1076 Forwards on Weibo
阅读全文
摘要: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; ...
阅读全文
摘要:TEMPLATE METHOD 模板模式 模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子
阅读全文
摘要: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...
阅读全文
摘要:思路:按行扫描,一维数组下标代表行,所表示的值代表所在的列,依次递归进行判断 代码:
阅读全文
摘要:希尔排序: 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。 由于直接插入排序在元素基本有序的情况下(接近最好情况),效率是非常
阅读全文
摘要:运行截图: 结点结构体 1 typedef struct LinkNode 2 { 3 int data; 4 struct LinkNode *pPre; 5 struct LinkNode *pNext; 6 }node,*PNODE; 创建一个结构体保存头部和尾部 typedef struct
阅读全文
摘要:双链表结点 //双链表节点 typedef struct LinkNode { int data; struct LinkNode *pPre; struct LinkNode *pNext; }node; 创建一个结构体保存双链表的头和尾 1 typedef struct info 2 { 3 n
阅读全文
摘要:运行截图: 节点的结构体定义 typedef struct queue { datatype data; int high;//优先级 struct queue *pNext; }Queue, *PQueue; //入队 入队的时候考虑优先级,优先级大的在前面 PQueue enq(PQueue p
阅读全文
摘要:运行截图: 创建记录分配的内存地址大小和地址的结构体 1 struct MEM 2 { 3 void *p; 4 int size; 5 }; 创建管理内存结构体的链表 1 typedef struct LinkNode 2 { 3 struct MEM *pmem;;//保存指针 4 struct
阅读全文
摘要:运行结果 链表定义 typedef struct LinkNode { int data; struct LinkNode *pNext; }node,*PNODE; 环形链表尾部添加 1 //尾部添加 2 PNODE addback(PNODE phead, int data) 3 { 4 //分
阅读全文

浙公网安备 33010602011771号