您的位置:首页 > 其它

ZOJ 3710 friends(暴力 枚举 水)

2014-08-19 00:22 393 查看
题意:有n个人 m对关系 如果两个人之间有不少于k个好友的话就会成为朋友 问 长此以往会有多少对新关系形成

思路:一直暴力到没有新关系为止

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
const int maxn = 100 + 1;

bool g[maxn][maxn];

int main( )
{
int ncase;
scanf("%d", &ncase);
while(ncase--)
{
int n, m, k;
scanf("%d%d%d", &n, &m, &k);
memset(g, false, sizeof(g));

for(int i = 0; i < m; i++)
{
int u, v;
scanf("%d%d", &u, &v);
g[u][v] = g[v][u] = true;
}

int ans = 0;
bool flag = true;
while(flag)    //一直找到不能再合并为止
{
flag = false;
for(int i = 0; i < n; i++)
{
for(int j = i + 1; j < n; j++)
{
if(g[i][j])
continue;

int cnt = 0;
for(int l = 0; l < n; l++)
if(g[i][l] && g[j][l])
cnt++;

if(cnt >= k)
{
g[i][j] = g[j][i] = true;
ans++;
flag = true;
}
}
}
}
printf("%d\n", ans);
}
return 0;
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: