![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
文章平均质量分 67
hsls_
这个作者很懒,什么都没留下…
展开
-
EOJ 2521 Guarding the Farm
题目大意: 统计图中具有相同元素的连通块个数,需保证该连通块周围的所有元素都比连通块元素小。 思路:DFS入门题 #include #include using namespace std; int dx[] = {-1,-1,-1, 0, 0, 1, 1, 1}; int dy[] = {-1, 0, 1,-1, 1,-1, 0, 1}; int n, m, flag; in原创 2015-08-15 21:44:46 · 304 阅读 · 0 评论 -
POJ 3414 Pots
题目大意: 有两个容量分别为a,b的杯子,需要经过若干次变换使任意一个杯子的容量为c,求最短的变换路径#include #include #include using namespace std; int a,b,k; int vis[105][105]; struct node { int x,y,step; string path; }; string p[] =原创 2015-09-05 16:16:54 · 276 阅读 · 0 评论 -
POJ 3278 Catch That Cow
第一次用BFS的方法去做模拟题,值得纪念。 #include #include #include using namespace std; int n, k; int vis[200000]; struct node { int x; int step; }; int BFS() { queue q; node cur; cur.x = n;原创 2015-08-15 22:31:08 · 215 阅读 · 0 评论 -
POJ 1321 棋盘问题
点击打开链接 类似于八皇后问题,DFS入门题 #include #include #include using namespace std; int n, k; char str[10][10]; int a[10][10], cnt, vis[10]; void DFS(int cur,int num) { for (int i = 0; i != n;原创 2015-08-15 22:09:55 · 183 阅读 · 0 评论 -
POJ 3126 Prime Path
题目大意: 给定两个素数a,b, 要求每次改变a中的一个数得到一个新的素数a1,再对a1中的一个数改变得到新的素数a2,问循环下去能否得到素数b. 思路: BFS 每次改变当前素数的一个值,判断是否为素数即可,注意前导0的问题#include #include #include using namespace std; bool is_prime[10000]; int n,原创 2015-08-15 22:24:05 · 184 阅读 · 0 评论 -
POJ 2251 Dungeon Master
题目大意: 三维的迷宫问题 思路: 与二维的类似仍用BFS求解,只不过入口由四个变为六个。#include #include #include #include using namespace std; struct node { int x, y, z, step; }; int dx[] = {0,0,-1,1,0,0}; int dy[] = {1,-1,0原创 2015-08-15 22:11:48 · 169 阅读 · 0 评论 -
POJ 3087 Shuffle'm Up
题目大意: 有两个长度为K的字符串S1,S2,两个字符串的字符交叉放置组成新的长为2*k的字符串s3,与题目给出的S相比较,若不相同,s3的前K个字符重新组成s1,剩余的组成s2,继续循环,若最终能和S相同,输出所需步数,不可行则输出impossible. 思路: 用模拟做就行了,虽然这题放在模拟专题里,但是只有一个入口,用BFS意义不大。 #include #inclu原创 2015-08-15 22:16:25 · 226 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese
题目大意: 从(0,0)点开始走,每次垂直或水平行走K步,下一步所获得的价值必须比当前步的价值要大,问所能获得的最大价值。 思路: DFS+DP #include #include #include using namespace std; /*DFS + DP */ int a[105][105], dp[105][105]; int k, n; int dfs(int原创 2015-08-15 21:50:30 · 169 阅读 · 0 评论 -
HDU 1978 How many ways
点击打开链接 思路: DFS + DP #include #include #include #include using namespace std; int dp[105][105], a[105][105]; int n,m; int dfs(int i, int j) { if (dp[i][j] > 0) return dp[i][j]原创 2015-08-15 22:03:04 · 183 阅读 · 0 评论 -
POJ 3984迷宫问题(记录路径)
题目大意: 题目本身是最简单的BFS,难点是记录路径 #include #include #include using namespace std; struct NODE //记录现在所处节点 父亲节点 及步数 { int x, y, step; int prex, prey; }node[10][10]; int a[10][10]; int dx[] = {0,原创 2015-09-05 16:27:22 · 244 阅读 · 0 评论