搜索
文章平均质量分 73
sxk_sxy
努力用自己辛勤的汗水,成为一名真正的ACMer
展开
-
BFS/DFS模板
//BFS#include#include#include#includeusing namespace std;const int maxn=100;bool vst[maxn][maxn]; // 访问标记int dir[4][2]={0,1,0,-1,1,0,-1,0}; // 方向向量struct State // BFS 队列中的状态数据结构{ int x,原创 2014-07-21 09:18:18 · 727 阅读 · 0 评论 -
FZU 2150 Fire Game (DFS + BFS)
题目链接:Fire Game题意:一块n*m的矩形中,‘#’代表是草,‘.'代表空地,空地点不着火。两个人同时开始点火,问最短多少时间能把所有草地点着,不能输出’-1‘。解析:先用dfs预判断草地的连通块数,超过2则无法全部点燃任选两个草地作起点,两者看作是一个整体,用bfs搜到起点到所有草地的最短时间,然后保留其中最长的时间在所有的最长时间中,选择最短的,即为所求。原创 2015-08-26 17:03:18 · 796 阅读 · 0 评论 -
hihoCoder挑战赛14-1224
题目链接:赛车解析:用down[]数组记录每个节点能向下走得最大深度,然后再枚举两个不在同一集合内的两点连接(若在同一集合,则会成环)。AC代码:#include #include #include #include using namespace std;int first[100005], nxt[100005], to[100005], e;原创 2015-08-31 19:17:01 · 687 阅读 · 0 评论 -
POJ 1321 棋盘问题 (DFS)
题目链接:棋盘问题解析:dfs暴力从上到下、从左到右搜索。AC代码://代码1#include #include #include using namespace std;int n, k, ans;char maze[10][10];bool vis[10][10];void dfs(int x, int y, int step){原创 2015-08-19 15:14:18 · 671 阅读 · 0 评论 -
POJ 3278 Catch That Cow (BFS)
题目链接:Catch That Cow解析:两个数n和k,三种操作:+1、-1、*2,问n最少经过多少次操作能和k相等。最简单的bfs模板了,注意+1的条件:x+1 -1的条件:x-1 >= 0*2的条件:x AC代码:#include #include #include #include #include using name原创 2015-08-19 11:52:07 · 593 阅读 · 0 评论 -
POJ 2251 Dungeon Master (BFS)
题目链接:Dungeon Master解析:三维BFS模板题。6个方向开始想的太复杂了,水了好久,其实只要老老实照二维的套就完了。AC代码:#include #include #include #include #include using namespace std;int L, R, C;string m[32][32];bool原创 2015-08-19 19:31:31 · 510 阅读 · 0 评论 -
HDU 3567 Eight II (A*)
题目链接:Eight II解析:还是八数码问题,当然还是A*了,只不过这次要加上预处理才行。先枚举出‘X’的位置,然后用前驱表保存所有情况然后直接回溯就行了,不用再搜了。AC代码:#include #include #include #include #include #include #include using namespac原创 2015-09-08 15:32:13 · 1319 阅读 · 3 评论 -
HDU 2181 哈密顿绕行世界问题 (DFS)
题目链接:哈密顿绕行世界问题解析:将每个点的相邻三个点按字典序存放,直接dfs即可。AC代码:#include using namespace std;int city[30][5];int vis[30];int pre[30];int m;int cnt;void print_ans(int cur){ if(cur !=原创 2015-09-09 19:51:45 · 559 阅读 · 0 评论 -
HDU 2102 A计划 (BFS + 预处理)
题目链接:A计划解析:三维的搜索,但是只有两层。先将地图预处理:两层对应位置都是‘#’的和一层是‘#’一层是‘*'的,两层都处理成’*‘。再bfs即可。AC代码:#include #include #include #include #include using namespace std;char mz[2][12][12];bool原创 2015-09-11 07:29:37 · 486 阅读 · 0 评论 -
POJ 3279 Fliptile
题目链接:Fliptile解析:先确定第一行的翻转方式,然后再判断是否存在解以及解的最小步数是多少。然后将第一行的所有翻转方式枚举一遍即可求出最优解。枚举的时候可以用整数表示集合。AC代码:#include #include #include #include using namespace std;const int dx[5] =原创 2015-08-21 13:29:34 · 602 阅读 · 0 评论 -
POJ 1426 Find The Multiple (DFS / BFS)
题目链接:Find The Multiple解析:直接从前往后搜,设当前数为k用long long保存,则下一个数不是k*10就是k*10+1AC代码:#include #include #include #include using namespace std;long long n;int DEEP;bool flag;void dfs(原创 2015-08-19 20:29:06 · 582 阅读 · 0 评论 -
POJ 3984 迷宫问题 (BFS)
POJ 3984 迷宫问题题意:原创 2014-07-22 23:20:02 · 867 阅读 · 0 评论 -
HDU 1043 && POJ 1077 Eight (A*)
题目链接:HDU 1043 POJ 1077解析:A*算法搜索中选择路径的条件:f = g + hg:搜索深度h:当前状态所有格点与目标状态对应格点曼哈顿距离。(曼哈顿距离:横纵坐标差值的绝对值之和)中间还有一个剪枝:只有起始状态和目标状态的奇偶性相同时,才有解,否则,直接输出无解。AC代码:#inc原创 2015-09-07 13:08:18 · 599 阅读 · 0 评论 -
UVA 11624 Fire! (BFS)
题目链接:Fire!解析:先用bfs处理出Fire到每个格子的最短时间。然后再使用bfs求出最短时间。注意:判断能否扩展的时候,要满足在格子着火之前才可以扩展。AC代码:#include #include #include #include using namespace std;const int maxn = 1000 + 5;char原创 2015-08-22 18:08:22 · 568 阅读 · 0 评论 -
POJ 3087 Shuffle'm Up (DFS)
题目链接:Shuffle'm Up题意:有a和b两个长度为n的字符序列,现定义操作:将a、b的字符交叉合并到一个序列c,再将c最上面的n个归为a,最下面n个归为b给出a,b和目标序列c,问最少多少次操作a、b转化为c解析:将a、b放入哈希表,然后模拟操作过程直接dfs即可。AC代码:#include #include #include原创 2015-08-25 21:36:58 · 734 阅读 · 0 评论 -
POJ 3126 Prime Path (BFS)
题目链接:Prime Path解析:两个长度为4的数字s和e,操作定义为:每步只能改变一位数字,并且改变后的数字必须为素数。问s最少经历多少次操作能变成e。先预处理筛出10000以内的素数每次操作可以对4个数字中的一个操作对于每个数字有10种可能性AC代码:#include #include #include #include #in原创 2015-08-25 09:55:49 · 592 阅读 · 0 评论 -
POJ 3414 Pots (DFS || BFS)
题目链接:Pots解析:给定两个水瓶的大小a和b,以及目标c,输出最短操作使某一水瓶中剩下c容量的水。操作包括倒空、倒满、两瓶互相倒。解法一:DFS枚举每次可行的方案,并对枚举的上限做了限制,即如果当前的枚举次数已经大于目前最小次数解就剪枝。AC代码:#include #include #include using namespace std;原创 2015-08-24 13:00:18 · 698 阅读 · 0 评论 -
POJ 3669 Meteor Shower (BFS + 预处理)
Meteor ShowerTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 9677 Accepted: 2718DescriptionBessie hears that an extraordinary meteor shower is comin原创 2015-02-02 21:13:02 · 1360 阅读 · 0 评论 -
POJ 1979 Red and Black (DFS)
Red and BlackTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 23904 Accepted: 12927DescriptionThere is a rectangular room, covered with square tiles.原创 2015-02-02 16:45:06 · 813 阅读 · 0 评论 -
POJ 3009 Curling 2.0 (dfs)
Curling 2.0Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 12700 Accepted: 5343DescriptionOn Planet MM-21, after their Olympic games this year, curl原创 2015-02-03 21:14:07 · 774 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone ( dfs + 奇偶剪枝 )
D - Tempter of the BoneTime Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 1010DescriptionThe doggie found a bone in an ancient原创 2014-07-23 17:45:54 · 984 阅读 · 0 评论 -
HDU 1016 Prime Ring Problem(素数环)
Prime Ring ProblemTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25909 Accepted Submission(s): 11536Problem DescriptionA ring is原创 2014-07-23 11:40:52 · 809 阅读 · 0 评论 -
POJ 2386 Lake Counting (dfs)
Lake CountingTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 19843 Accepted: 9980DescriptionDue to recent rains, water has pooled in various places in原创 2014-07-23 16:40:15 · 676 阅读 · 0 评论 -
POJ 1088 滑雪 (记忆化搜索)
题意:有一个二维矩阵代表滑雪场原创 2014-07-22 23:49:45 · 681 阅读 · 0 评论 -
hdu 1142 A Walk Through the Forest (Dijkstra + 记忆化搜索)
A Walk Through the ForestTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5984 Accepted Submission(s): 2211Problem Description原创 2015-01-21 11:38:59 · 875 阅读 · 0 评论 -
URAL 1837. Isenbaev's Number (map + Dijkstra || BFS)
1837. Isenbaev's NumberTime limit: 0.5 secondMemory limit: 64 MBVladislav Isenbaev is a two-time champion of Ural, vice champion of TopCoder Open 2009, and absolute champion of ACM ICP原创 2015-03-17 07:47:24 · 882 阅读 · 0 评论 -
HLJU 1036: Teamwork Brings Profits! (dfs)
1036: Teamwork Brings Profits!Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 52 Solved: 8[Submit][Status][Web Board]DescriptionWilliammed's father is running a small company now, which has原创 2015-06-18 16:56:21 · 728 阅读 · 0 评论 -
HDU 2612 Find a way (BFS)
题目链接:Find a way解析:使用两次bfs从“Y”和“M”的位置分别使用bfs搜出各自到所有“@”点的最短时间在遍历所有“@”点,求出最小的最短时间。AC代码:#include #include #include using namespace std;char mz[205][205];int vis[205][205],原创 2015-08-23 13:36:11 · 584 阅读 · 0 评论 -
HDU 1495 非常可乐 (DFS)
题目链接:非常可乐解析:一个瓶子,容量为s,两个杯子,容量分别为n和m,问最少多少次倾倒才能将一瓶可乐均分为两份。直接模拟每次的倾倒,然后递归求解。可以加个预判的条件,要是s是奇数的时候,无论如何也是分不均的。AC代码:#include #include #include using namespace std;int s, n, m, ans原创 2015-08-23 20:22:48 · 975 阅读 · 0 评论 -
HDU 1241 Oil Deposits (DFS)
题目链接:Oil Deposits解析:问有多少个“@”块,其中每个块内的各个“@”至少通过八个方向之一相邻。直接从“@”的地方开始向相邻八个方向搜索,每搜到一个格子,就将它替换成“.”,一次搜索就会搜索完一个块,记录搜索的次数为答案。AC代码:#include #include #include using namespace std;char原创 2015-08-23 17:33:18 · 525 阅读 · 0 评论 -
2013 ACM-ICPC吉林通化全国邀请赛 && HDU 4499 Cannon (搜索)
AC代码:#include using namespace std;int n, m, q;int g[10][10];int ans;void dfs(int x, int y, int cnt){ if(x >= n){ //搜索结束 ans = max(ans, cnt); return ; } if(y >=原创 2015-10-02 15:33:57 · 633 阅读 · 0 评论