码迷,mamicode.com
首页 > 其他好文 > 详细

F - Friends ZOJ - 3710(暴力)

时间:2019-01-24 20:09:04      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:ret   多少   flag   一次循环   c++   max   clu   ++   lse   

 题目链接:https://cn.vjudge.net/contest/280949#problem/F

题目大意:给你n个人,然后给你m个关系,每个关系输入t1, t2 .代表t1和t2是朋友关系(双向关系)。然后输入一个k,代表两个人是亲密的朋友关系的话,就至少有k个共同的朋友,然后问你题目中这样的朋友有多少对?

具体思路:注意一个地方,朋友关系具有传递性,打个比方 t1和t2 变成了亲密的朋友,然后t0 本来和t1是朋友关系,但是和t2不是朋友关系,t1和t2成为朋友之后,t0也就和t2称为朋友了。

(读题还是太慢了。。。。)

AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 # define inf 0x3f3f3f3f
 4 const int maxn = 100+100;
 5 int vis[maxn][maxn];
 6 int n,m,k;
 7 bool cal(int t1,int t2)
 8 {
 9     int num=0;
10     for(int i=1; i<=n; i++)
11     {
12         if(vis[t1][i]&&vis[t2][i])
13         {
14             num++;
15         }
16     }
17     if(num<k)
18         return false;
19     //  cout<<t1<<" "<<t2<<endl;
20     return true;
21 }
22 int main()
23 {
24     int T;
25     scanf("%d",&T);
26     while(T--)
27     {
28         memset(vis,0,sizeof(vis));
29         int t1,t2;
30         scanf("%d %d %d",&n,&m,&k);
31         for(int i=1; i<=m; i++)
32         {
33             scanf("%d %d",&t1,&t2);
34             t1++;
35             t2++;
36             vis[t1][t2]=1;
37             vis[t2][t1]=1;
38         }
39         int flag=1;
40         int num=0;
41         while(flag)//不能一次循环就完事了,还会有经过传递之后成为新朋友的关系。
42         {
43             int ans=0;
44             flag=0;
45             for(int i=1; i<=n; i++)
46             {
47                 for(int j=i+1; j<=n; j++)
48                 {
49                     if(vis[i][j])
50                         continue;
51                     if(cal(i,j))
52                     {
53                         vis[i][j]=vis[j][i]=1;
54                         ans++;
55                         flag=1;
56                     }
57                 }
58             }
59             num+=ans;
60         }
61         printf("%d\n",num);
62     }
63     return 0;
64 }

 

F - Friends ZOJ - 3710(暴力)

标签:ret   多少   flag   一次循环   c++   max   clu   ++   lse   

原文地址:https://www.cnblogs.com/letlifestop/p/10316366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!