舞会邀请

CODE[VS] 2604

题目大意:

Smart要叫一些人开Party,每个人可以通知一部分人,Smart去通知一些人,再让这些人去通知其他人,问Smart最少通知几个人,可以使全部人都被通知到

原题:

题目描述 Description

Smart是一位颇有成就的艺术家,他因油画作品《我爱北京天安门》闻名于世界。现在,他为了报答帮助他的同行们,准备开一个舞会。
Smart准备邀请n个已经确定的人,可是问题来了:
这n个人每一个人都有一个小花名册,名册里面写着他能够通知到的人的名字。比如说在A的人名单里写了B,那么表示A能够通知到B;但是B的名单里不见得有A,也就是说B不见得能够通知到A。
Smart觉得需要确定自己需要通知到多少个人(人数m),能够实际将所有n个人都通知到。并求出一种方案以确定m的最小值是多少。
注意:自己的名单里面不会有自己的名字。

输入描述 Input Description

第一行一个数n(1≤n≤200)。接下来n行,第i+1行表示编号为i的人的小花名册名单,名单以0结束。

输出描述 Output Description

一个整数,即m的值。

样例输入 Sample Input

5 1
2 0
1 3 0
0
0
1 0

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

1≤n≤200

题目大意:

将图中的强连通分量找出来,然后将其所谓一个点,然后再找入读为0的点的个数通知即可

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n,m,x,ans,b[205],rd[205],a[205][205];
int main()
{scanf("%d",&n);for (int i=1;i<=n;++i){scanf("%d",&x);while (x){a[i][x]=1;//读入scanf("%d",&x);}}for (int k=1;k<=n;++k)for (int i=1;i<=n;++i)for (int j=1;j<=n;++j)a[i][j]=max(a[i][j],min(a[i][k],a[k][j]));//Floyedfor (int i=1;i<=n;++i)if (!b[i])//判断是否已经被缩了{b[i]=++m;//缩点for (int j=i+1;j<=n;++j)if (a[i][j]&&a[j][i])//强连通b[j]=m;//记录}for (int i=1;i<=n;++i)for (int j=1;j<=n;++j)if (a[i][j]&&b[i]!=b[j])//链接并不是同一个点rd[b[j]]=1;//有入读for (int i=1;i<=m;++i)if (!rd[i]) ans++;//入读为0printf("%d",ans);
}

【图论】【Floyed】舞会邀请(CODE[VS] 2604)相关推荐

  1. 东软始业教育内容提纲(附题目 及答案)

    可参考 https://blog.csdn.net/chenggongcheng/article/details/8623836 ======================汇总=========== ...

  2. 大数据窥探微信表情背后的含义,结论可能就是,你老了……

    导读:1月9日,在微信公开课PRO上,微信官方发布了<2018微信数据报告>. 根据大数据统计,过去的2018年,不同年龄段的用户对小表情的使用情况是不一样的. 00后最爱的微信表情是&q ...

  3. 东软始业教育内容提纲(2020)(后附题目)

    东软始业教育内容提纲(后附题目) --2020年8月修正版 加油! 写在前面: 至各位兄弟姐妹,希望大家都能顺利通过! 有些题目略微有些变动,总体内容不变.后面的题目绝大多数都在列了,剩余的注意搜索关 ...

  4. 洛谷 - P4062 [Code+#1]Yazid 的新生舞会(推公式+线段树)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的序列,现在要求存在 绝对众数 的子区间个数 所谓 绝对众数,就是对于区间 [l,r][l,r][l,r] 来说,存在一个数字的出现次数 cntc ...

  5. P4062 [Code+#1]Yazid 的新生舞会 树状数组维护三阶差分

    传送门 文章目录 题意: 思路: 题意: 给你一个序列aaa,让你求有多少个子区间满足存在一个数是这个区间的绝对众数,绝对众数指该数在区间内出现的次数严格大于r−l+12\frac{r-l+1}{2} ...

  6. P4062 [Code+#1]Yazid 的新生舞会(线段树做法)

    P4062 [Code+#1]Yazid 的新生舞会(线段树做法) 题意: 给你一个序列a[1-n]​,求存在绝对众数的子区间个数. 绝对众数指:区间中出现次数最多的那个数,出现次数严格大于区间长度的 ...

  7. P4062 [Code+#1]Yazid 的新生舞会(分治做法)

    P4062 [Code+#1]Yazid 的新生舞会 题意: 给出一个序列,求有多少个子区间满足众数的出现次数大于区间长度的一半. 出现次数大于区间长度的一般我们称之为绝对众数 题解: 分治做法 对于 ...

  8. P4062 [Code+#1]Yazid 的新生舞会(区间绝对众数+分治/树状数组维护高维前缀和)

    P4062 [Code+#1]Yazid 的新生舞会 杭电多校懂得都懂 Code1 分治 比较喜欢分治的做法,非常好写.skylee大佬题解 首先对于任何一个区间来说,由于两个端点不确定性非常难以一次 ...

  9. 算法基础14 —— 图论入门之弗洛伊德算法(Floyed + Dijkstra + Bellman-Ford + SPFA)

    入门概念 带权图:如下图所示,我们把边带有权值的图称为带权图 可以将边的权值理解为两点之间的距离 一张图中任意两点间会有不同的路径相连 最短路径:最短路径就是指连接两点的这些路径中最短的一条 Floy ...

最新文章

  1. failed building wheel for termcolor_for循环优化,List分组,多线程的写法
  2. ios 开发证书导出p12文件_开发者在上传企业签名的应用到后,做到如下几点
  3. 【译】Tutorials ---- Hello, World
  4. Android之Android studio如何解决Multiple dex files define Landroid/support/a(文件重复引用错误)
  5. POJ1742 Coins(DP)
  6. Java是否越来越接受静态导入?
  7. sap wm内向交货步骤_内向型人在数据科学中成功的五个有效步骤
  8. box-align,box-pack实现元素垂直底部对齐
  9. BeanUtils简介
  10. Python进阶之Scrapy抓取阳光政务平台
  11. TF-IDF mapreduce实现
  12. 领峰:普通人如何炒白银技巧和方法有哪些
  13. Exception in thread “main“ java.io.NotSerializableException:
  14. Seaborn系列(二):关系绘图
  15. Eclipse创建C++工程并解决“Symbol 'std' could not be solved”
  16. 在kali虚拟机中安装Android模拟器
  17. html5如何设置字号,如何设置css中字体大小?
  18. 1998世界杯主题曲[生命之杯]Ricky.Martin
  19. 网络管理员面试技术试题收集
  20. android 多渠道上线,Android打包之多版本、多环境、多渠道

热门文章

  1. 网站logo放在服务器,自己建网站如何设计网站LOGO
  2. jdbc连接mysql8的一些坑_mysql8.0 jdbc连接注意事项
  3. armv7的linux系统,CentOS 7(1611) for ARM(armhfp)发布
  4. java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...
  5. python购物车典例_Python入门:购物车实例
  6. 算法设计与分析——递归与分治——归并排序
  7. 7-3 最小生成树-kruskal (10 分)(思路+详解+并查集详解+段错误超时解决)宝 Come
  8. [JavaWeb-JavaScript]JavaScript_Global全局对象
  9. Template Method(模板方法)--类行为型模式
  10. Oracle多租户体系,Oracle12C 多租户管理