vijos1107环游大同80天学习了一下求树的最长链的方法最简单的思路就是两次dfs两次dfs分别有什么用呢?第一次dfs,求出某个任意的点能到达的最远的点第二次dfs,从所搜到的最远的点倒搜回去.为什么需要两次呢?其实很容易想通第一遍dfs的起始点或许并不是最长链的起点从最远的点倒搜到的最长的链...
分类:
其他好文 时间:
2014-09-19 01:06:24
阅读次数:
265
题目链接:http://acm.hrbust.edu.cn/vj/index.php?c=problem-problem&id=190592题意:给出p*q的棋盘,从(A,1)开始,走“日”字,问能否走完棋盘上所有的点,如果能,按字典序输出路径;思路:DFS,并保存路径即可,注意处理走的方向顺序in...
分类:
其他好文 时间:
2014-09-19 01:02:24
阅读次数:
281
A Knight's Journey
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 31147
Accepted: 10655
Description
Background
The knight is getting bored of seeing the s...
分类:
其他好文 时间:
2014-09-18 22:23:34
阅读次数:
241
第一个问题可以抽象为这样:给定一个数组A,和一个数t,用数组里的一些数求和得到t,数组里的数可以重复使用,写一个算法,使得使用A中最少的数来表示t。比如:[2,4,6,9],18==>[9,9]dfs问题//numbers要从大到小,一个sort搞定,result存放结果bool dfs(vecto...
分类:
其他好文 时间:
2014-09-18 22:02:24
阅读次数:
162
http://acm.hdu.edu.cn/showproblem.php?pid=1342
题意:以升序的形式给定k个数,输出从中挑选6个数满足升序的所有情况。
思路:两个参数,第一个保存当前搜索的位置,第二个保存个数。
#include
#include
int a[15],b[15],vis[15],k;
void dfs(int ans,int num)
{
if(num==...
分类:
其他好文 时间:
2014-09-18 16:38:24
阅读次数:
186
http://poj.org/problem?id=3083DescriptionThe cornfield maze is a popular Halloween treat. Visitors are shown the entrance and must wander through the ...
分类:
其他好文 时间:
2014-09-18 13:17:13
阅读次数:
228
简单DFS,由 1~N 的数字组成的环。要求相邻两个数相加能组成素数。
输入比较小,可以筛一下素数也可以直接判断。
CLR(prime,0);
prime[1]=1;
for(int i=2;i<101;i++)
for(int j=2;i*j<101;j++)
prime[i*j]=1;
然后dfs一遍即可。
#include
#i...
分类:
其他好文 时间:
2014-09-18 11:35:24
阅读次数:
245
点击打开链接
二分图最大独立集 = 顶点数 - 最大匹配数
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 1005;
int g[maxn][maxn];
int n;
int link[maxn];
bool used[maxn];
bool dfs(i...
分类:
其他好文 时间:
2014-09-18 11:31:33
阅读次数:
185
题目: uva 116 Unidirectional TSP
题意:给出一个矩阵,当前的格子值为后面三个方向的格子最小值和当前的和,就第一列的最小值并打印路径(相同则去字典序最小的)、
分析:刚开始想错了,从前往后走,这样的话没有办法控制字典序最小,用dfs标记了一下超时了。
其实从后往前走就好了。以后一定先想清楚顺序,然后dp的时候选择字典序最小的,用father数据记录即...
分类:
其他好文 时间:
2014-09-18 09:49:33
阅读次数:
163