ZOJ3712(set+map)写得好
2016-04-02 23:04
381 查看
这是浙江省赛的F题,题意是给你n个人,m对朋友关系,如果两个人的公共好友超过k人,那他们可以成为新的朋友,问经过一段“”足够长的时间后“, 新产生了多少对朋友关系这题,发现可以用STL秒, 枚举每对未成为朋友的i和j,如果其公共好友超过k人,那么增加这对关系,然后继续枚举。。。直到不能增加新关系为止
#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<set>
using namespace std;
map<int, set<int> > f;
set<int> ::iterator iter;
int n, m, k, u, v;
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
f.clear();
scanf("%d%d%d", &n, &m, &k);
while(m--)
{
scanf("%d%d", &u, &v);
f[u].insert(v);
f[v].insert(u);
}
bool flag = 1;
int ans = 0;
while(flag)
{
flag = 0;
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
{
if(f[i].count(j)) continue;
int cnt = 0;
for(iter = f[i].begin(); iter != f[i].end(); iter++)
{
int m = *iter;
if(f[j].count(m)) cnt++;
}
if(cnt >= k)
{
ans++;
f[i].insert(j);
f[j].insert(i);
flag = 1;
}
}
}
printf("%d\n", ans);
}
return 0;
}
这是浙江省赛的F题,题意是给你n个人,m对朋友关系,如果两个人的公共好友超过k人,那他们可以成为新的朋友,问经过一段“”足够长的时间后“, 新产生了多少对朋友关系这题,发现可以用STL秒, 枚举每对未成为朋友的i和j,如果其公共好友超过k人,那么增加这对关系,然后继续枚举。。。直到不能增加新关系为止
#include<iostream>
#include<algorithm>
#include<string>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<set>
using namespace std;
map<int, set<int> > f;
set<int> ::iterator iter;
int n, m, k, u, v;
int main()
{
int t;
scanf("%d", &t);
while(t--)
{
f.clear();
scanf("%d%d%d", &n, &m, &k);
while(m--)
{
scanf("%d%d", &u, &v);
f[u].insert(v);
f[v].insert(u);
}
bool flag = 1;
int ans = 0;
while(flag)
{
flag = 0;
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
{
if(f[i].count(j)) continue;
int cnt = 0;
for(iter = f[i].begin(); iter != f[i].end(); iter++)
{
int m = *iter;
if(f[j].count(m)) cnt++;
}
if(cnt >= k)
{
ans++;
f[i].insert(j);
f[j].insert(i);
flag = 1;
}
}
}
printf("%d\n", ans);
}
return 0;
}
相关文章推荐
- JAVA守护线程 daemon thread
- 矩阵快速幂专题(二)
- OC阅读笔记十:匿名对象
- linux基础之查看硬件信息
- 绝对定位与相对定位
- hexo干货系列:(总纲)搭建独立博客初衷
- Android studio 使用NDK工具实现JNI编程
- 10030---5分钟了解Mockito
- 欢迎使用CSDN-markdown编辑器
- python获得路径和子路径下所有的文件的相关信息
- Hadoop课程--第一篇
- Yii2框架与MongoDB拓展、Redis拓展的安装流程
- uva 1584.Circular Sequence
- js indexOf substring用法
- 最大上升子序列(LIS)
- HBase完全分布式配置
- Web用户行为跟踪收集
- C++中,头文件stdlib.h主要包含什么函数? C++
- BestCoder Round #78 (div.2) A B
- tomcat 和 jboss的热部署(热发布)问题