A* 八数码解法

八数码问题 A* 算法

分析

@ analyse:
对于每一个状态设计对应结构体,
- 状态去重:
每种状态使用decimal number去重
- open表:
使用优先队列(小根堆),选取堆顶元素。
- close表:
使用vector

如果一个状态在open表中和close表中都没有出现,则将该状态加入open表中

如果一个状态只在open表中出现,则检查该状态与表中的状态谁更优,保存更优者

如果一个状态只在close表中出现,检查该状态与close表中的状态谁更优,如果更优,则把当前状态移动至open中,并更新最优值及路径

Read more
简单几步激活你的win10+office

Office 2019下载地址

Read more
Aoj_0121

bfs 解空间

题目描述

给定一个只还有0~7状态空间,求解给定空间转换到目标空间01234567的最少步数。规定只有零状态可与相邻格子移动(up,down,left,right)。

分析

Read more
Nim-Game

尼姆博弈——博弈论

题目描述

一堆n个物品,每个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者获胜。

显然,如果n=m+1,那么由于一次最多只能取m个,因此,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后取者胜。

总结如下:

如果n=(m+1)*k+r,区中k为任意自然数。先取者要拿走r个物品,如果后取者拿走x(<=m)个,那么先取者再拿走m+1-x个,结果剩下(m+1)(k-1)个,以后保持这样的取法,那么先取者肯定获胜。

总之,要保持给对手留下(m+1)的倍数,就能最后获胜。

游戏地址:
拿糖果游戏


KMP

KMP算法

KMP 算法主要由两部分组成

  • 前缀函数
  • 匹配

前缀函数(Prefix function) KMP的next函数

前缀函数是KMP思想的精髓

Read more
Trie

Trie -字典树

基本原理

字典树,又称Trie树,是一种树形结构.典型应用就是用于统计,排序和保存大量的字符串(不仅限于字符串).

Read more
个人简介

RESUME 个人简介

就读于江苏科技大学 计算机科学与技术系

擅长html,css,js,webpack,jquery,node.js

Email : 邮箱联系我


[WEEK_8] 题解 A,B

A 题,快速幂+模拟

除法模拟本质是除数不停乘10再取模的过程,因此可以想到用快速幂求第x1,然后再模拟求x2-x1+1位即可

附上标程:

https://ideone.com/fOexbR

Read more
codeforces-1130-C

联通块+曼哈顿距离

Read more
codeforces-1131-B

分析

前一个回合的最大值(max)与当前回合的最小值(min)对比, 如果max>=min时,才可计数。然后迭代更新答案即可。注意:如果a==b时,要注意重复计算。

Read more