topcoder srm 682 div1 -3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了topcoder srm 682 div1 -3相关的知识,希望对你有一定的参考价值。

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 ":(";
	}
};

  

以上是关于topcoder srm 682 div1 -3的主要内容,如果未能解决你的问题,请参考以下文章

topcoder SRM712 Div1 LR

topcoder srm 305 div1

topcoder srm 738 div1 FindThePerfectTriangle(枚举)

topcoder srm 310 div1

topcoder srm 515 div1

topcoder srm 340 div1