随笔 - 386
文章 - 0
评论 - 21
阅读 -
21万
随笔分类 - 图算法————BFS&&DFS
URAL 1698. Square Country 5(记忆化搜索)
摘要:题目链接题意 : 自守数的定义:如果某个数的平方的末尾几位数等于这个数,那么就称这个数为自守数。例如5*5=25,则5就是自守数。让你求不超过n位的自守数有多少思路 : 实际上,自守数还有两个性质:以他为后几位的两个数相乘,乘积的后几位仍是这个自守数。刚好n位的自守数一定是两个,当然1位的时候0和1...
阅读全文
HDU 1111 Secret Code (DFS)
摘要:题目链接题意 : 给你复数X的Xr和Xi,B的Br和Bi,让你求一个数列,使得X = a0 + a1B + a2B2 + ...+ anBn,X=Xr+i*Xi,B=Br+Bi*i ;思路 : 首先要知道复数的基本运算,题目中说0 2 #include 3 #include 4 #define...
阅读全文
HDU 1104 Remainder (BFS求最小步数 打印路径)
摘要:题目链接题意 : 给你N,K,M,N可以+,- ,*,% M,然后变为新的N,问你最少几次操作能使(原来的N+1)%K与(新的N)%k相等。并输出相应的操作。思路 : 首先要注意题中给的%,是要将负数变为正数的,所以取余的时候要注意,又因为各种问题……% 的问题是:a mod b = (a % b ...
阅读全文
2014 ACM/ICPC Asia Regional Xi'an Online(HDU 5007 ~ HDU 5017)
摘要:题目链接A题 :(字符串查找,水题)题意 :输入字符串,如果字符串中包含“Apple”, “iPhone”, “iPod”, “iPad” 就输出 “MAI MAI MAI!”,如果出现“Sony”就输出“SONY DAFA IS GOOD!” ,大小写敏感。思路 :字符串查找,水题。 1 #inc...
阅读全文
HDU 1026 Ignatius and the Princess I (BFS)
摘要:题目链接题意 : 从(0,0)点走到(N-1,M-1)点,问最少时间。思路 : BFS、、、、、 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std ; 7 8 struct node 9 {10 ...
阅读全文
HDU 1016 Prime Ring Problem (素数筛+DFS)
摘要:题目链接题意 : 就是把n个数安排在环上,要求每两个相邻的数之和一定是素数,第一个数一定是1。输出所有可能的排列。思路 : 先打个素数表。然后循环去搜。。。。。 1 //1016 2 #include 3 #include 4 #include 5 6 using namespace std...
阅读全文
HDU 1142 A Walk Through the Forest(SPFA+记忆化搜索DFS)
摘要:题目链接题意 :办公室编号为1,家编号为2,问从办公室到家有多少条路径,当然路径要短,从A走到B的条件是,A到家比B到家要远,所以可以从A走向B 。思路 : 先以终点为起点求最短路,然后记忆化搜索。 1 //1142 2 #include 3 #include 4 #include 5 #in...
阅读全文
POJ 1691 Painting A Board(DFS)
摘要:链接题意 : 看了好长时间终于看懂题目了,将一个大矩形划分成若干小矩形,告诉你每个小矩形的左上角那个点和右下角那个点的坐标,告诉你这个小矩形要涂的颜色,每个颜色对应一个刷子,问你最少要使用几次刷子。因为你要刷一个矩形之前,必须把这个矩形上方与之直接相邻的所有矩形先刷掉才能刷这个,如果你先用了红色的刷...
阅读全文
POJ 1724 ROADS(BFS+优先队列)
摘要:题目链接题意 : 求从1城市到n城市的最短路。但是每条路有两个属性,一个是路长,一个是花费。要求在花费为K内,找到最短路。思路 :这个题好像有很多种做法,我用了BFS+优先队列。崔老师真是千年不变的SPFA啊,链接。还有一个神用了好几种方法分析,链接。用优先队列控制长度,保证每次加的都是最短的,每次...
阅读全文
POJ 3411 Paid Roads(SPFA || DFS)
摘要:题目链接题意 : 要从1城市到n城市,求最短路是多少,从a城市到达b城市的路程,如果你到过c城市,则需要走p,否则走r长。思路 : 因为可以来回走,所以不能用单纯的最短路,可以用二维SPFA,状态压缩一下,第二维来记录状态,表示到过这个点的第几个状态。也可以用DFS,因为最多十个点,所以如果走某一个...
阅读全文
POJ 1699 Best Sequence(DFS)
摘要:題目鏈接題意 : 將幾個片段如圖所示方法縮成一個序列,求出最短這個序列。思路 : 其實我也不知道怎麼做。。。。。看網上都用了DP。。。。。但是我不會。。。。。這個DP不錯,還有用KMP+状压DP做的 1 //1699 2 #include 3 #include 4 #include 5 #in...
阅读全文
2010年山东省第一届ACM大学生程序设计竞赛 Balloons (BFS)
摘要:题意 : 找联通块的个数,Saya定义两个相连是|xa-xb| + |ya-yb|≤1 ,但是Kudo定义的相连是|xa-xb|≤1 并且 |ya-yb|≤1。输出按照两种方式数的联通块的各数。思路 : 按照第一种定义方式就只能是上下左右四个位置,而第二种则是周围那8个都是相连的。 1 #incl...
阅读全文
2014年微软编程之美初赛第一场 第二题 树
摘要:题目链接题目2 : 树时间限制:4000ms单点时限:2000ms内存限制:256MB描述有一个N个节点的树,其中点1是根。初始点权值都是0。一个节点的深度定义为其父节点的深度+1,。特别的,根节点的深度定义为1。现在需要支持一系列以下操作:给节点u的子树中,深度在l和r之间的节点的权值(这里的深度...
阅读全文
HDU 1429 胜利大逃亡(续)(三维BFS)
摘要:题目链接题意 : 中文题不详述。思路 : 这个题和1885差不多一样的,所以我直接改了改那个代码就交上了,链接 1 //1429 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 using namesp...
阅读全文
HDU 1885 Key Task(三维BFS)
摘要:题目链接题意 : 出口不止一个,一共有四种颜色不同的门由大写字母表示,而钥匙则是对应的小写字母,当你走到门前边的位置时,如果你已经走过相应的钥匙的位置这个门就可以走,只要获得一把钥匙就可以开所有同颜色的门。问你能不能走出来。思路 : 这个题比赛的时候完全没有思路,想了好久脑子都疼了也没想出来。原来是...
阅读全文
ZOJ 1008 Gnome Tetravex(DFS)
摘要:题目链接题意 : 将n*n个正方形进行排列,需要判断相邻的正方形的相邻三角形上边的数字是不是都相等。思路 : 只知道是个深搜,一开始不知道怎么搜,后来看了题解才明白,就是说不是自己去搜,而是将给定的正方形按照要求一个个往上摆,如果摆不下去了肯定是没有结果的。还有可以将一样的放一起,如果一个在某个位置...
阅读全文
POJ 1562 && ZOJ 1709 Oil Deposits(简单DFS)
摘要:题目链接题意 : 问一个m×n的矩形中,有多少个pocket,如果两块油田相连(上下左右或者对角连着也算),就算一个pocket 。思路 : 写好8个方向搜就可以了,每次找的时候可以先把那个点直接变为*,这样可以避免重复搜索。 1 //POJ 1562 ZOJ 1709 2 3 #include ...
阅读全文
HDU 2992 Hotel booking(BFS+DFS 或者 SPFA+Floyd)
摘要:点我看题目题意 : 一个司机要从1点到达n点,1点到n点中有一些点有宾馆,司机的最长开车时间不能超过10小时,所以要在10小时之内找到宾馆休息,但是为了尽快的走到n点,问最少可以经过几个宾馆。思路 : 这个题太狠了,简直不是人做的。。。。可以BFS一下,然后在B之前先D一下能走的路。当然也可以用SPFA+Floyd。#include #include #include #include #include using namespace std ;struct node{ int u,w ;}temp ;struct BFS{ int u,w,step ;}t,t1 ;const i...
阅读全文
ZOJ 2110 Tempter of the Bone(DFS)
摘要:点我看题目题意 : 一个N×M的迷宫,D是门的位置,门会在第T秒开启,而开启时间小于1秒,问能否在T秒的时候到达门的位置,如果能输出YES,否则NO。思路 :DFS一下就可以,不过要注意下一终止条件再判断一下时间,还有因为题目中要求走过的路要变成墙,所以每次走的时候要注意一下把路变成墙,但是如果你不走这条路了,要记得变回来。还有这个题必须剪枝,否则超时超到疯啊,DFS函数中那个剪枝不怎么好想,T-t代表的是在当前位置还需要T-t步路。而fabs(ex-x)+fabs(ey-y)指的是当前位置离终点最短还有着些步数,如果两者之差不小于0的话,T-t应该等于fabs(ex-x)+fabs
阅读全文
HDU 1253 胜利大逃亡(三维BFS)
摘要:点我看题目题意 : 中文题不详述。思路 :因为还牵扯到层的问题,所以用三维的解决,不过这个还是很简单的BFS,六个方向搜一下就可以了,一开始交的时候老是超时,怎么改都不对,后来看了一个人写的博客,他说用C++交300ms,G++交600ms,我就改成C++交了,果然AC了,不过。。。。用了900ms。。。。。我也懒得改了,也不知道为什么G++交超时#include #include #include #include #include #include #include using namespace std ;int mapp[51][51][51] ;bool vis[51][51][51
阅读全文