P4212 外太空旅行

题目描述

在人类的触角伸向银河系的边缘之际,普通人上太空旅行已经变得稀松平常了。某理科试验班有n个人,现在班主任要从中选出尽量多的人去参加一次太空旅行活动。 可是n名同学并不是和平相处的。有的人,比如小A和小B整天狼狈为奸,是好朋友;但还有的人,比如(政治敏感)和(政治敏感)就水火不相容。这n名同学,由于是理科生,都非常的理性,所以“朋友的朋友就是朋友”和“敌人的朋友就是敌人”这两句话对这些同学无效。换句话说,有可能小A和小B是朋友,小B和小C是朋友,但是小A和小C两人势如水火。 任意两个人之间要不就是敌人,要不就是朋友。 因为在太空船上发生人员斗殴事件是很恶劣也很危险的,因此选出来参加旅行活动的同学必须互相之间都是朋友。你的任务就是确定最多可以选多少人参加旅行。

输入输出格式

输入格式:

第一行一个整数n(1<=n<=50)。所有的同学按照1~n编号。 接下来若干行,每行两个用空格隔开的整数a, b(1<=a,b<=n),表示a和b是朋友。 注意:如果一个数对(x,y)(或者(y,x))没有在文件中出现,那么编号为x和y的两个同学就是敌人。

输出格式:

一个数,即最多可以选多少人参加活动。

input
4
1 2
2 3
3 1
1 4
output
3

sol:最大团模板题,熟练的选手立刻想到是随机化(然而我并不是)

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,a[N],b[N];
bool Bo[N][N];
inline bool Judge(int x)
{
int i;
for(i=;i<=*b;i++) if(!Bo[b[i]][x]) return false;
return true;
}
int main()
{
int i,j,x,y,ans=;
R(n);
while(~scanf("%d%d",&x,&y)) Bo[x][y]=Bo[y][x]=;
for(i=;i<=n;i++) a[i]=i;
for(i=;i<=;i++)
{
random_shuffle(a+,a+n+);
*b=;
for(j=;j<=n;j++) if(Judge(a[j])) b[++*b]=a[j];
ans=max(ans,(int)*b);
if(*b==n) break;
}
Wl(ans);
return ;
}
/*
input
4
1 2
2 3
3 1
1 4
output
3
*/

luogu4212的更多相关文章

随机推荐

  1. STL-set 容器以及迭代器的简单理解

    先说下set的基本操作和时间复杂度 begin()     ,返回set容器的第一个元素 end() ,返回set容器的最后一个元素 clear()        ,删除set容器中的所有的元素 em ...

  2. iframe父子页面通信

    一.同域下父子页面的通信 1.父页面调用子iframe页面 (1)通过iframe的Id获取子页面的dom,然后通过内置属性contentWindow取得子窗口的window对象,此方法兼容各个浏览器 ...

  3. Java基础第二天--多态、接口

    多态 多态的概述 同一个对象,在不同时刻表现出来的不同形态 多态的前提和体现 有继承/实现关系 有方法重写关系 有父类引用指向子类对象 public class Animal { public voi ...

  4. [转载]from __future__ import的用法

    一句话概况:这是为了在低版本python中使用高版本特性而引入的,最常用的就是print_function来实现在2.x中使用3.x中的print()命令,从而避免在切换版本时修改代码. https: ...

  5. babel详解

    https://segmentfault.com/a/1190000019718925 https://babeljs.io/blog/2019/03/19/7.4.0#core-js-3-7646- ...

  6. Flutter-动画-实践篇

    一.了解AnimatedWidget 通常我们给一个Widget添加动画的时候都需要监听Animation的addListener()方法,并在这个方法里面不停的调用setState()方法通知Wei ...

  7. 在Mysql中使用索引

    MySQL查询的优化是个老生常谈的问题,方法更是多种多样,其中最直接的就是创建索引. 这里通过一个简单的demo来实际用一下索引,看看索引在百万级别查询中速率的提升效果如何 所需数据可以从我前面的一篇 ...

  8. 关于C语言打印string类字符串的问题

    首先因为printf函数输出字符串是针对char *的,即printf只能输出c语言的内置数据,而string不是c语言的内置数据. 其次string类型的对象不止包含字符串,还包含了许多用于操作的函 ...

  9. 版本控制工具 svn 一

    一.svn 概述 1).svn的作用 1.多人协作开发:2.远程控制:3.版本控制 2).软件控制管理工具发展之路 SCM:软件配置管理,所谓的软件配置管理实际就是软件源代码的 控制与管理. CVS: ...

  10. FLUSH TABLES WITH READ LOCK 获取锁的速度

    最近有一台MySQL的从库老是报延迟,观察到:FLUSH TABLES WITH READ LOCK,阻塞了4个多小时,还有另外一条SQL语句select *,从现象上来看是select * 阻塞了f ...