题目描述
我们的郭嘉大大在曹操这过得逍遥自在,但是有一天曹操给了他一个任务,在建邺城内有 个袁绍的奸细,将他们从 到 进行编号,同时他们之间存在一种传递关系,即若,则奸细 能将消息直接传递给奸细 。

现在曹操要发布一个假消息,需要传达给所有奸细,而我们的郭嘉大大则需要传递给尽量少的奸细使所有的奸细都知道这一个消息,问我们至少要传给几个奸细?

输入格式
文件的第一行为 ,第二行至第 行为 的矩阵(若第 行第 列为 ,则奸细 能将消息直接传递给奸细 ,若第 行第 列为 ,则奸细 不能将消息直接传递给奸细 )。

输出格式
输出文件只有一行:即我们的郭嘉大大首先至少要传递的奸细个数。

样例
输入
8
0 0 1 0 0 0 0 0
1 0 0 1 0 0 0 0
0 1 0 1 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 1 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 1 0 0 0 1
0 0 0 0 0 0 1 0
输出
2
数据范围与提示

也是一道板子题,算是对tarjan加强理解,找到入度为0的点即需要传递的人数

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stack>
#define mem(a,b) memset(a,b,sizeof(a))
const int N=202000;
typedef long long ll;
using namespace std;int head[N],tot;
int e[1002][1002];int dfn[N],low[N],cnt,s[N],tp;
int scc[N],sc;
int sz[N],n,m,out[N],in[N];
void tarjan(int u)
{low[u]=dfn[u]=++cnt;s[++tp]=u;for(int v=1; v<=n; v++){if(e[u][v]){if(!dfn[v]){tarjan(v);low[u]=min(low[u],low[v]);}else  if(!scc[v])low[u]=min(low[u],low[v]);}}if(dfn[u]==low[u]){++sc;while(s[tp]!=u){scc[s[tp]]=sc;sz[sc]++;--tp;}scc[s[tp]]=sc,sz[sc]++,--tp;}
}
int main()
{scanf("%d",&n);for(int i=1; i<=n; i++){for(int j=1; j<=n; j++){scanf("%d",&e[i][j]);}}for(int i=1; i<=n; i++){if(!dfn[i])tarjan(i);}for(int u=1; u<=n; u++){for(int v=1; v<=n; v++){if(scc[u]==scc[v])   continue;//  out[scc[u]]++;if(e[u][v])in[scc[v]]++;}}int ans1=0,ans2=0;for(int i=1; i<=sc; i++){if(in[i]==0)++ans1;}printf("%d\n",ans1);return 0;
}

#10094. 「一本通 3.5 练习 2」消息的传递相关推荐

  1. 「一本通 6.5 练习 3」迷路

    「一本通 6.5 练习 3」迷路 题目描述 大意说一个给你有向图, 一个有n个节点,每个节点相连的边为所需要花费的时间, 问你从1到n 在时间刚好为t是的方案数.输出%2009 注意:不能在某个节点逗 ...

  2. 【C++】「一本通 1.1 例 4」加工生产调度

    「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...

  3. LibreOJ10082. 「一本通 3.3 例 1」Word Rings【二分+SPFA】

    10082. 「一本通 3.3 例 1」Word Rings [题目描述] 传送门 [题解] 将一个字符串看成一条边,字符两端的字符看成节点,长度看成权值.二分枚举答案,最后SPFA刷正环,因为只要有 ...

  4. #10016. 「一本通 1.2 练习 3」灯泡(三分)

    参考博客链接:「一本通 1.2 练习 3」灯泡(三分) #include<stdio.h> #include<string.h> #include<math.h> ...

  5. 【C++】「一本通 1.1 例 2」种树

    「一本通 1.1 例 2」种树 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [解析] [代码] [来源] 一本通题库-1423 LibreOJ-10001 vjud ...

  6. #10001. 「一本通 1.1 例 2」种树

    #10001. 「一本通 1.1 例 2」种树 满足n个区间种树的要求,求最少种多少棵数 思路 按照区间的尾巴来排序,因为如果区间有重叠的种在第一个区间的尾巴可以使得种树更少,所有每次始从尾巴开始种树 ...

  7. 【C++】「一本通 1.1 例 5」智力大冲浪

    「一本通 1.1 例 5」智力大冲浪 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1426 LibreOJ- ...

  8. 「一本通 1.2 例 2」Best Cow Fences

    题目链接: 链接: [link](信息学奥赛一本通(C++版)在线评测系统). 首先这道题要求找平均数,且要求所选片段长度需要大于等于l.那么首先想到的就是最暴力的方法就是找到所有大于等于l的片段在其 ...

  9. LOJ #10222. 「一本通 6.5 例 4」佳佳的 Fibonacci

    题目链接 题目大意 $$F[i]=F[i-1]+F[i-2]\ (\ F[1]=1\ ,\ F[2]=1\ )$$ $$T[i]=F[1]+2F[2]+3F[3]+...+nF[n]$$ 求$T[n] ...

  10. loj.ac:#10024. 「一本通 1.3 练习 3」质数方阵

    CSDN的博客 友键 题目描述 质数方阵是一个\(5×5\)的方阵,每行.每列.两条对角线上的数字可以看作是五位的素数.方格中的行按照从左到右的顺序组成一个素数,而列按照从上到下的顺序.两条对角线也是 ...

最新文章

  1. mysql表打包到程序中_关于数据库程序的打包
  2. Mysql事务字符集
  3. 运行caffe自带的mnist实例教程
  4. 从零开始实现multipart/form-data数据提交
  5. 添加弹窗_阻止电脑广告弹窗窗口让电脑桌面更清洁
  6. Java基础篇:构造函数
  7. 3)Thymeleaf th:* 设置/修改属性值详解
  8. MTK芯片资料大全,MTK处理器型号介绍
  9. dns解析服务器原理,简述DNS服务器原理
  10. Swiper、vue-awesome-swiper中文文档
  11. 搅拌反应釜cad图纸_搅拌式反应釜设计(三维SW)【全套含有CAD图纸三维建模】...
  12. 名片识别信息分类python_基于Python的智能名片识别接口调用代码实例
  13. 用DIV+CSS技术设计的游戏企业网页(网页制作课作业)
  14. nRF52832调试
  15. zblog php伪静态,zblog php版本后台伪静态的URL配置(建议方案)
  16. cesium 三维坐标系绘制
  17. 【河南省第二届技能大赛-物联网技术】C模块Python开发讲解
  18. css命名冲突怎么办?原理是啥?
  19. 藏在微博里的汽车改装匠
  20. 求问Windows10适配的SPSS版本

热门文章

  1. 《码农的爱情》第一章又逢情人节
  2. 第四章第六题(圆上的随机点)(Random points on a circle)
  3. CMakeLists.txt文本编辑工具
  4. android studio透明背景,使用Android Studio时出现黑色的PNG透明背景
  5. html在搜索按钮中加放大镜,CSS3 搜索按钮动效 - 放大镜图标变叉叉
  6. 中华小子剧情介绍,中华小子在线观看
  7. php 打印出心形,利用php输出不同的心形图案_PHP
  8. 戴尔DELL OEM Win7SP1简体中文旗舰版原版光盘镜像64位
  9. 钢铁侠或漫威中有哪些黑科技?
  10. java 权限 部分截图