标签:srm highlight size 长度 back amp mil public map
1、给定一个$n$个节点的无向图。找到一个长度为4的链。$5\leq n \leq 2000$
思路:枚举链的起点,暴力搜索即可。因为假设图中最长链的长度是3,那么搜索的最大复杂度是$O(n^{2})$。
#include <stdio.h>
#include <string.h>
#include <string>
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <algorithm>
#include <stack>
#include <assert.h>
using namespace std;
const int N=2005;
vector<int > g[N];
int h[N];
int dfs(int u,int pre,int cnt)
{
if(cnt==5) return 1;
h[u]=1;
for(int i=0;i<(int)g[u].size();++i)
{
int v=g[u][i];
if(v!=pre&&!h[v]&&dfs(v,u,cnt+1))
return 1;
}
h[u]=0;
return 0;
}
class SmilesTheFriendshipUnicorn
{
public:
string hasFriendshipChain(int n,vector<int> A,vector<int> B)
{
const int m=(int)A.size();
for(int i=0;i<m;++i)
{
int u=A[i];
int v=B[i];
g[u].push_back(v);
g[v].push_back(u);
}
for(int i=0;i<n;++i)
{
memset(h,0,sizeof(h));
if(dfs(i,-1,1)) return "Yay!";
}
return ":(";
}
};
标签:srm highlight size 长度 back amp mil public map
原文地址:http://www.cnblogs.com/jianglangcaijin/p/7002971.html