搜索
bnc1010
这个作者很懒,什么都没留下…
展开
-
洛谷 P1032 字串变换
链接:https://www.luogu.org/problemnew/show/P1032 题意:给一个初始字符串和一个目标字符串,然后有最多6个规则,从前一个字符串可以变到后一个字符串。询问初始字符转能否经过这些规则的变换最终变为目标字符串。可以的话输出最小的步数,否则输出“"NO ANSWER!”。 思路:因为规则很少,直接暴力bfs所有可能的状态就好了,然后用一个map来判重。偷点懒,直接...原创 2018-09-18 20:07:16 · 139 阅读 · 0 评论 -
洛谷P1019 单词接龙
链接:https://www.luogu.org/problemnew/show/P1019 题意:给你n个字符串,如果一个字符串的后缀是另一个字符串的前缀,那么这个字符串就可以与另一个字符串接龙,但是不能是前面一个串是后面那个串的字串,或者是后面的那个串是前面串的字串。如果一个串的前缀也是它的后缀,那么自己跟自己也可以接龙,但是每个串在最终接龙后的传中最对只能出现两次。最后询问最长接龙的长度。 ...原创 2018-09-17 19:40:54 · 128 阅读 · 0 评论 -
虫食算
题目网址:https://www.luogu.org/recordnew/show/10855571 题意题目中已经介绍得很清楚了 这道题目的状态不多,直接dfs搜索状态就好了。不要忘记有进位。 #include<bits/stdc++.h> using namespace std; int n; char s[4][50];//存三个串 int mp[30];//存对应字母代...原创 2018-09-17 18:31:00 · 99 阅读 · 0 评论 -
双向bfs
自从暑假学长讲过这个之后,现在才开始写第一道双向bfs题目。其实双向bfs很简单就是分别从起点和终点做两个bfs,以此大幅度减少搜索的状态数,从而解决一些普通单向bfs容易超时的问题。 q1从起点bfs的队列,q2从终点bfs的队列,vis1存从起点bfs的状态,vis2存从终点bfs的状态。 双向bfs的核心: 在q1的bfs中的一种状态有三种情况:1.vis1中不存在,在vis2中存在,说明这...原创 2018-10-23 20:20:28 · 2808 阅读 · 0 评论 -
迭代加深dfs优化
当普通dfs搜索答案时,有时会有搜索的深度较深状态较多,而答案所在的深度却比较小的情况。比如说下面这个图中,目标状态是红框的那个点,它的深度很小,但是左侧有很多的状态,普通dfs必须要搜完左侧所有状态才会搜到目标状态,这样就很容易超时。对此可以在dfs的时候限定一个深度的状态,这个深度是从小到大枚举的,直到搜到答案。 如果我们限定dfs的深度是1,那么就只有两个状态,目标状态第二次就搜到了,实现...原创 2018-10-24 18:23:37 · 1786 阅读 · 0 评论 -
codefrces contest 1131 D Gourmet choice(拓扑排序)
链接:http://codeforces.com/contest/1131/problem/D 题意:有n*m个大小关系 d e a > < b > > c = < 表示 a>d,a<e,b>d,b>e,c=d,c<e 找出一种所有数字最小的可行方案 思路:大小...原创 2019-02-25 21:47:58 · 134 阅读 · 0 评论 -
Dishwashing(二分)
测试链接 题面: Bessie and Elsie are helping Farmer John wash the dishes, a more complicated process than one might think due to their lack of opposable thumbs. The two cows decide that Bessie will apply so...原创 2019-07-16 22:03:38 · 431 阅读 · 0 评论 -
usaco Cow at Large (双向bfs)
题面: Cornered at last, Bessie has gone to ground in a remote farm. The farm consists of N barns (2≤N≤1e5) and N−1 bidirectional tunnels between barns, so that there is a unique path between every pair...原创 2019-07-17 20:41:49 · 212 阅读 · 0 评论 -
codeforces gym100519 problemG Genealogy(topu)
链接 题意: 给出n个人以及他的父亲,询问家族关系中最长的一条链,可以有环。 思路: 每个人的儿子可以有多个,但是父亲只有一个。先考虑简单的情况,没有环的话,就类似于森林,建一条儿子指向父亲的单向边,从叶子出发topu,记录一下每个点向下延申的最大距离即可。如果有环的话,不难发现,环上挂着的链的方向都是指向环的,答案就会变为环的周长+挂着的最长的一条链的长度。和之前一样从叶子topu,环上有链的...原创 2019-10-11 12:54:48 · 250 阅读 · 0 评论