Blog·Tanky WooABOUTRSS

HDU/HDOJ 2208 唉,可爱的小朋友(DFS+强连通分支+并查集)

14 Jun 2011
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2208

有人说用位状态压缩做,等会去试试。

我首先想到的时强连通分支,算出分支数,如果小于气球数,则OK,这里用了并查集的思想。

AC代码:

// Author: Tanky Woo
// Blog:   www.WuTianQi.com
// Problem: HDOJ 2208 唉,可爱的小朋友
#include 
#include 
using namespace std;

int arr[15][15];
int root[15];
int N, M, K, tmp;
bool finish;

void dfs(int n, int m)
{
    if(m > M)
        return;
    if(n == N)
    {
        finish = 1;
        return;
    }
    for(int i=0; i> N >> M)
    {
        memset(arr, 0, sizeof(arr));
        for(int i=0; i> K;
            for(int j=0; j> tmp;
                arr[i][tmp] = 1;
                //arr[tmp][i] = 1;
            }
        }
        if(M>=N || isOk())
            cout << "YES" << endl;
        else
            cout << "NO" << endl;
    }

}