Victoria是一位颇有成就的艺术家,他因油画作品《我爱北京天安门》闻名于世界。现在,他为了报答帮助他的同行们,准备开一个舞会。

Victoria准备邀请n个已经确定的人,可是问题来了:

这n个人每一个人都有一个小花名册,名册里面写着他所愿意交流的人的名字。比如说在A的人名单里写了B,那么表示A愿意与B交流;但是B的名单里不见的有A,也就是说B不见的想与A交流。但是如果A愿意与B交流,B愿意与C交流,那么A一定愿意与C交流。也就是说交流有传递性。

Victoria觉得需要将这n个人分为m组,要求每一组的任何一人都愿意与组内其他人交流。并求出一种方案以确定m的最小值是多少。

注意:自己的名单里面不会有自己的名字。

以下是我的AC代码,写得很传统。

但是我仍有点疑问。

如果A和B互相有好(已经染在一起),发现A与C也互相友好(在A的BFS中搜到了C)

那么C就直接染色。

但要不要判断B与C的关系了呢?应该不用了吧。

 #include<stdio.h>
using namespace std;
longf[201][201],map[201][201],num[201],now[201],cnt,i,j,k,n;
void dfs(long k)
{
  long go,i;
  for (i=1;i<=num[k];i++)
    {
      go=map[k][i];
      if (now[go]==0)
      {
        now[go]=cnt;
        dfs(go);
      }
    }
}
int main()
{
    scanf("%ld",&n);
    for (i=1;i<=n;i++)
      {
        while (true)
        {
          scanf("%ld",&k);
          if (k==0) break;
          f[i][k]=true;
        }
      }
    for (k=1;k<=n;k++)
      for (i=1;i<=n;i++)
        for (j=1;j<=n;j++)
          if((i!=k)&&(i!=j)&&(j!=k))
           f[i][j]=f[i][j]||f[i][k]&&f[k][j];
    for (i=1;i<=n;i++)
      for (j=1;j<=n;j++)
        if((i!=j)&&(f[i][j]!=f[j][i]))
        {
          f[i][j]=false;
          f[j][i]=false;
        }
    for (i=1;i<=n;i++)
      {
        for (j=1;j<=n;j++)
          if (f[i][j])
          {
            num[i]++;
           map[i][num[i]]=j;
          }
        now[i]=0;
      }
    cnt=0;
    for (i=1;i<=n;i++)
      if (now[i]==0)
      {
        cnt++;now[i]=cnt;
        dfs(i);
      }
    printf("%ld",cnt);
}

vijos1022题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. java虚拟机学习-JVM调优总结(6)

    1.Java对象的大小 基本数据的类型的大小是固定的,这里就不多说了.对于非基本类型的Java对象,其大小就值得商榷. 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个 ...

  2. Fitting Bayesian Linear Mixed Models for continuous and binary data using Stan: A quick tutorial

    I want to give a quick tutorial on fitting Linear Mixed Models (hierarchical models) with a full var ...

  3. 【小练习03】CSS-表格(table)--天气预报

    表格基础知识链接:http://blog.csdn.net/baidu_37107022/article/details/71713281 练习要求实现如下效果图: 代码演示 <!DOCTYPE ...

  4. VMware Workstation 11安装

    VMware Workstation 11序列号:1F04Z-6D111-7Z029-AV0Q4-3AEH8

  5. DOS学习札记(一)

    DOS学习入门 最近碰到几个关于cmd命令操作,感觉操作快捷方便(也许是偶尔新鲜感使然),由于重装系统后,系统的资源管理器与功能分布都有一些不同,导致在寻找一些windows功能时有些费劲,比如说关闭 ...

  6. 软件测试基础(软件测试分类和工具组)firebug、firepath的安装

    白盒测试:需要了解内部结构和代码 黑盒测试:不关心内部结构和代码 灰盒测试:介于白盒黑盒之间 静态测试:测试时不执行被测试软件 动态测试:测试时执行被测试软件 单元测试:测试软件的单元模块 集成测试: ...

  7. [BZOJ1597]土地购买

    Description 农夫John准备扩大他的农场,他正在考虑N (1 <= N <= 50,000) 块长方形的土地. 每块土地的长宽满足(1 <= 宽 <= 1,000, ...

  8. spring非controller类获取service方法

    ApplicationContext ctx = new ClassPathXmlApplicationContext("spring.xml"); pushMessageServ ...

  9. 进程控制fork与vfork

    1. 进程标识符 在前面进程描述一章节里已经介绍过进程的两个基本标识符pid和ppid,现在将详细介绍进程的其他标识符. 每个进程都有非负的整形表示唯一的进程ID.一个进程终止后,其进程ID就可以再次 ...

  10. linux系统最常用命令(持续更新)

    1.重启服务器 ubuntu系统重启apache:/etc/init.d/apache2 restart linux重启nginx: service nginx restart 重新加载:servic ...