DFS
文章平均质量分 63
丶阿明
Hello World!
展开
-
HDU 5305 Friends
分析:给你n个人,和m个朋友关系,让你求满足每个人的线上和线下的朋友数相等的方案有多少种。如果有一个人的朋友数为奇数,不存在可行解,输出0,否则令每个人未确认的线上朋友on[i]和线下朋友off[i]的个数相等都为du[i]/2,然后从第一条边开始Dfs搜索,如果第num条的连的两个点都有未确认的线上朋友,则确认顶点u,v为线上朋友,所以未确认的on[u]--,on[v]--然后继续搜索下一条边,原创 2015-07-24 21:14:09 · 361 阅读 · 0 评论 -
HDU 1010 Tempter of the Bone
分析:迷宫问题,要求从S恰好走t步到达D,如果从S到D的最短距离大于t或者S到D的距离和t一奇一偶都不可能到达,直接输入NO,否则Dfs搜索所有可能的路如果存在满足条件的就标记flag=1。 # include # include # define abs(x) (x>0?x:-(x)) int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; in原创 2015-07-24 21:23:41 · 323 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese
分析:题意就是,输入n,k然后输入n阶矩阵,从起点(0,0)开始走,可以往上/下/左/右,4个方向直走,一次最多可以走k步,要求走到的下一个点必须比当前的点大,输出走到的所有点的值之和最大为多少。这题用DFS暴力肯定超时,可以用记忆化搜索,用dp[i][j]表示以点(i,j)为起点,走到的所有点的值之和的最大值,要求dp[i][j],只要知道(i,j)一次能走到的所有点的dp[i'][j']中的最原创 2015-10-24 00:38:11 · 440 阅读 · 0 评论 -
POJ 3009 Curling 2.0
分析:题意就是玩冰壶,2是起点,3是终点,1是障碍物,冰壶在静止状态下,可以往上/下/左/右抛出,且抛出的那个方向的下一个点不能是障碍物或抛出界,抛出后沿直线运动,直到碰到障碍物(障碍物会消失,冰壶会停在障碍物前一个点),或出界(出界就gameover了),如果不能到达终点或抛出冰壶的次数>10次,输出-1,否则输出最少需要抛几次才能到达终点。我们用DFS遍历所有情况,如果抛出的次数>10 了原创 2015-10-23 23:46:30 · 461 阅读 · 0 评论 -
HDU 1016 Prime Ring Problem
分析:给你n个球序号分别为1,2....n,让你排成一个环,使得任意相邻2个球的序号和为素数,输出所有满足条件的序列,1是开头,按字典序输出。这题可以看做是n个顶点,任意两个顶点之间有一条无向边,遍历所有顶点,使得遍历的结果围成一个圈,任意2个相邻的点的和为素数,然后用DFS遍历图。 # include # include int n,top,s[35],visit[25],stack[原创 2015-10-24 00:24:11 · 418 阅读 · 0 评论