您的位置:首页 > 其它

ZOJ-3710

2014-04-27 11:45 218 查看
无意间发现一水题,随手刷了,发现又手贱地用Python去写了下。。果断TLE了,无奈还是用C吧

#include<stdio.h>
#include<string.h>

static int map[100][100];
static int common(int i, int j)
{
int k, total = 0;
for (k = 0; k < 100; k++)
if (map[i][k] && map[j][k])
total++;
return total;
}

int main()
{
int t, n, m, k, i, j;
scanf("%d", &t);
while (t--)
{
memset(map, 0, sizeof(map));
scanf("%d %d %d", &n, &m, &k);
int a, b;
for (i = 0; i < m; i++)
{
scanf("%d %d", &a, &b);
map[a][b] = map[b][a] = 1;
}
int has_new = 1, total = 0;
while (has_new)
{
has_new = 0;
for (i = 0; i < n && !has_new; i++)
for (j = 0; j < n && !has_new; j++)
if (i != j && !map[i][j] && common(i, j) >= k)
{
map[i][j] = map[j][i] = 1;
has_new = 1;
total++;
}
}
printf("%d\n", total);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: