11 2017 档案
摘要:链接 : "Here!" 思路 : 两遍BFS, 第一次是从 'Y' 搜索, 搜到 '@' 就将其累加到一个数组中, 这里采用将二维坐标点映射成一维的点, 第二次从 'M' 搜索, 搜到 '@' 就将其累加到一个数组中, 最后扫描一遍地图, 将 $ans$ 更新为字符为 '@' 的累加值最小值. 最
阅读全文
摘要:链接 : "Here!" 思路 : BFS一下, 然后记录下每个孩子的父亲用于找到一条路径, 因为 寻找这条路径只能从后向前找, 这符合栈的特点 , 因此在输出路径的时候先把目标节点压入栈中, 然后不断的向前寻找, 最后直接pop出栈中所有的元素即可. 注意 : 不要把局部变量压入栈中, 这样就直接
阅读全文
摘要:链接 : "Here!" 背景 : 开始我同学是用 AC自动机 + DP 的方法来做这道题, 这道题的标签是 AC自动机, 动态规划, 矩阵 , 按道理来说 AC自动机 + DP 应该是能过的, 但是他不幸的 $T$ 了, $QAQ$, 后来 神犇Hug 给我们提供了一个思路!!! 思路 : 题目要
阅读全文
摘要:链接 : "Here!" 思路 : 记录下所有 "?" , 出现的位置, 然后 $DFS$ 一下, 对于每个位置来说都可以填充 $9$ 种数值, 然后对于判断填充是否合法需要三个标记数组来辅助记录. $visR[i][num] = 1, 代表第 i 行num值已经出现过, visC[i][num]
阅读全文
摘要:链接 : "Here!" 思路 : 如果用 $STL$ 的 $map$ 或者是使用 $unordered\underline{}map$ 的话是会 $T$ 的, 所以得手写一个 $hash表$. 其实这个题题意一开始看的话还是蛮难以理解的. 但是如果理解了题意, 这道题就非常简单了. 题目样例解析
阅读全文
摘要:链接 : "Here!" 思路 : Trie树裸题, 由开始给出的名字建一棵字典树, 然后每次查询一下抢♂劫的人名是否在字典树中, 复杂度也不清楚是多少, 反正是没给出 $M$ 的范围, 开始时用 $hash$ 做, $T$ 了, 分析一下也可以知道为什么 $T$, 因为对于不在富豪列表中的人, 还
阅读全文
摘要:链接 : "Here!" 思路 : 三维的搜索, 只需要注意输入的图$G$, 第一为是 $z$ 即可. 剩下的就是普通的搜索, 只不过多加了一维而已... c++ / File Name: E.cpp Author: Mail: Created Time: 2017年11月26日 星期日 10时51
阅读全文
摘要:链接 : "Here!" 思路 : 素数表 + BFS, 对于每个数字来说, 有四个替换位置, 每个替换位置有10种方案(对于最高位只有9种) , 因此直接用 BFS 搜索目标状态即可. 搜索的空间也不大... c++ / File Name: E.cpp Author: Mail: Created
阅读全文
摘要:链接 : "Here!" 思路 : 这道题类似 $N$ 皇后, 只不过每一行并不是必须有一个棋子, 所以仍然是枚举每一行 $x$ , 1. 对于下棋的策略来说, 枚举每一列, 检查下棋点是否合法, 如果合法则搜索下一行, 并且标记, 等到搜索下一行的所有状态搜索完成, 取消标记, 进行回溯. 2.
阅读全文
摘要:链接 : "Here!" 思路 : 简单的搜索, 直接广搜就ok了. c++ / File Name: E.cpp Author: Mail: Created Time: 2017年11月26日 星期日 10时51分05秒 / include include include include incl
阅读全文
摘要:链接 : "Here!" 思路 : 如果直接爆搜的话, 会搜到天荒地老.... QAQ ...., 所以就得利用一些技巧, 因为题目说的是小狗能否在 $T (s)$ 能够恰好到达 $Door$ , 所以可以利用 奇偶剪枝 来 剪掉多余搜索 奇偶剪枝 : 假设只能上下左右移动, 现在起点为 $(sx,
阅读全文
摘要:链接 : "Here!" 思路 : 搜索判断连通块个数, 所以 $DFS$ 或则 $BFS$ 都行喽...., 首先记录一下整个地图中所有$Oil$的个数, 然后遍历整个地图, 从油田开始搜索它所能连通多少块其他油田, 只需要把它所连通的油田个数减去, 就ok了 c++ / File Name: E
阅读全文
摘要:链接 : "Here!" 思路 : 很简单, 就是一个简单的状态搜索, 对于中间的任意状态 $number$ , 它都有三种转移方式 : 1.$(number 1)$, 2.$(number + 1)$, 3.$(number 2)$, 所以直接 $BFS$ 就好了, 需要注意的是判断一下最大值是否
阅读全文
摘要:链接 : "Here!" 思路 : 1. 首先这棵家族树非常非常非常有特点, 家族里的人要么没有孩子, 要么有两个孩子, 所以这棵家族树是一颗满二叉树. 2. 设定状态 $dp[i][j]$ 为 $i$ 个人组成的不超过 $j$ 层的家谱结构种数, 首先明确一点, 那些状态会为这个状态贡献值 ? 自
阅读全文
摘要:补题题册 OJ 题目 类型 时间 备注 计蒜客 疑似病毒 AC自动机 +可达矩阵 + DP 2017-11-23 √, 这道题对AC自动机的理解提升很大 计蒜客 字符串旋转矩阵 AC自动机 2017-11-23 QAQ
阅读全文
摘要:链接 : "Here!" 思路 : 1. 首先看数据范围 $1\leq n \leq 2000$, $1 \leq k \leq 100$ , 直接暴力肯定 $T$, 如果锤子是正着的就好办了, 就可用二维前缀和的技巧来进行降维了! 2. 所以直接将矩阵右旋45°, 让锤子正过来, 右旋时需要注意原
阅读全文
摘要:链接 : "Here!" 思路 : 这里采用一种非常风骚的写法, 对于求解表达式来说, 普通的做法就是用栈, 但是 还可以利用递归来解决, 其实思考一下, 递归也是调用的系统栈, 所以说本质上并没有什么区别. 首先, 设置优先级 "(", ")" 的优先级最高, 设置为100 "^" 的优先级次之,
阅读全文
摘要:链接 : "Here!" 思路 : 水题 代码 : c++ include include include include using namespace std; struct info { int ages; string id; }; int n, m; bool cmp(info a, in
阅读全文
摘要:链接 : "Here!" 思路 : 这是一道大模拟, 区分好情况就没问题了 循环构成部分 : $F , x , i , j$ 和 $E$ , 需要注意的是 $i , j$, 分析 $i, j$ 的情况 : 当 $i, j$ 全为 $n$ 的时候, 复杂度为 $O(1)$ 当 $i, j$ 为 $nu
阅读全文
摘要:链接 : "Here!" 思路 : 其实这个是一道简单的并查集问题, 判断$Jerry$是否能从下表面跑到上表面, 其实质上是判断上表面和下表面是否连通 , 因此这道问题就变成了判断连通性的问题了. 判断标准是如果$d File Name: t13.cpp Author: Mail: Created
阅读全文
摘要:链接 : "Here!" 思路 : 状压DP. 开始想直接爆搜, T掉了, 然后就采用了状压DP的方法来做. 定义$f[S]$为集合$S$的最小代价, $dis[i]$则记录第$i$个点的"深度", 所以说边$E{[i, j]}$ 的工程代价就为$dis[i] E{[i, j]}$, 因此可以得到状
阅读全文