(http://www.elijahqi.win/2017/07/03/%E3%80%90luogu2835%E3%80%91-%E5%88%BB%E5%BD%95%E5%85%89%E7%9B%98/%20%E2%80%8E)
题目描述
在JSOI2005夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习。组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,又来不及去买了,怎么办呢?!
组委会把这个难题交给了LHC,LHC分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,因为一个人拿到光盘后,其他人可以带着U盘之类的东西去拷贝啊!
可是,LHC调查后发现,由于种种原因,有些营员并不是那么的合作,他们愿意某一些人到他那儿拷贝资料,当然也可能不愿意让另外一些人到他那儿拷贝资料,这与我们JSOI宣扬的团队合作精神格格不入!!!
现在假设总共有N个营员(2<=N<=200),每个营员的编号为1~N。LHC给每个人发了一张调查表,让每个营员填上自己愿意让哪些人到他那儿拷贝资料。当然,如果A愿意把资料拷贝给B,而B又愿意把资料拷贝给C,则一旦A获得了资料,则B,C都会获得资料。
现在,请你编写一个程序,根据回收上来的调查表,帮助LHC计算出组委会至少要刻录多少张光盘,才能保证所有营员回去后都能得到夏令营资料?
输入输出格式
输入格式:

先是一个数N,接下来的N行,分别表示各个营员愿意把自己获得的资料拷贝给其他哪些营员。即输入数据的第i+1行表示第i个营员愿意把资料拷贝给那些营员的编号,以一个0结束。如果一个营员不愿意拷贝资料给任何人,则相应的行只有1个0,一行中的若干数之间用一个空格隔开。

输出格式:

一个正整数,表示最少要刻录的光盘数。

输入输出样例
输入样例#1:
5
2 3 4 0
4 5 0
0
0
1 0
输出样例#1:
1

题解:这大概是强连通裸题 然后缩点,统计入度为0的点 据说还可以floyd+并查集 回来搞一下

#include<cstdio>
#include<cstring>
#define N 88000
#define N1 220
struct node{int x,y,next;
}data[N];
int num,top,stack[N1],low[N1],dfn[N1],h[N1],s,b[N1],n,a1[N1],a2[N1];
bool stackf[N1];
inline void insert1(int x,int y){data[++num].x=x;data[num].y=y;data[num].next=h[x];h[x]=num;
}
void tarjan(int u){dfn[u]=++num;low[u]=num;stack[++top]=u;stackf[u]=true;for (int i=h[u];i;i=data[i].next) {int v=data[i].y;if (dfn[v]==0){tarjan(v);if (low[v]<low[u]) low[u]=low[v];} else{if (stackf[v]&&dfn[v]<low[u]) low[u]=dfn[v];}} if(dfn[u]==low[u]){++s;int y;do{y=stack[top--];b[y]=s;stackf[y]=false;}while(y!=u);}
}
int main(){//freopen("2835.in","r",stdin);//freopen("2835.out","w",stdout);scanf("%d",&n);memset(h,0,sizeof(h));num=0;for (int i=1;i<=n;++i){int tmp;scanf("%d",&tmp);while (tmp!=0){insert1(i,tmp);scanf("%d",&tmp);}}int num1=num;num=0;memset(low,0,sizeof(low));memset(stackf,false,sizeof(stackf));for (int i=1;i<=n;++i){if (dfn[i]==0) tarjan(i);}//for (int i=1;i<=n;++i) printf("%d\n",b[i]);for (int i=1;i<=num1;++i){int x=data[i].x,y=data[i].y;if (b[x]!=b[y]){a1[b[x]]++;a2[b[y]]++;}}int ans=0;for (int i=1;i<=s;++i){if (a2[i]==0) ans++;}printf("%d",ans);return 0;
}

【luogu2835】 刻录光盘相关推荐

  1. 【图论】【Kosaraju】刻录光盘(ssl 2344)

    刻录光盘 ssl 2344 题目大意: 求连通块 原题: 题目描述 在JSOI2005夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习.组委会觉 ...

  2. linux下刻录光盘读取不了_Linux下刻录光盘实战

    Linux下刻录光盘实战 linux下刻录光盘非常简单,只需在终端窗口输入以下命令即可: cdrecord -v speed=2 dev=0,0,0 cd.iso cdrecord软件在发行版中一般都 ...

  3. 用计算机刻录光盘,刻录光盘,教您如何使用计算机将文件刻录到光盘上.

    最近,当编辑者浏览Web时,我不小心闻到了强烈的闷热气,因此编辑者跟随着这种气息找到了来源. 原来,朋友们正在讨论如何使用计算机将文件刻录到CD. 看到问题后,编辑者急忙回到这里写一篇有关它的文章. ...

  4. linux下刻录光盘读取不了_Linux下刻录光盘

    linux下刻录光盘非常简单,只需在终端窗口输入以下命令即可: cdrecord -v speed=2 dev=0,0,0 cd.iso cdrecord软件在发行版中一般都有,如果安装系统时没有安装 ...

  5. 用计算机刻录光盘,怎么用电脑刻录光盘?将文件刻录光盘的方法和步骤

    怎么用电脑刻录光盘?不少用户认为刻录光盘是一个技术活,而事实上是十分容易的,你要的电脑上有DVD光驱并且带有刻录功能,那么通过软件一步一步设置即可刻录光盘.下面装机之家分享一下将文件刻录光盘的方法和步 ...

  6. linux服务器怎么刻录光盘,Ubuntu 下使用K3B软件刻录光盘(图)

    Ubuntu 下使用K3B软件刻录光盘(图) 不知大家会不会在Ubuntu下刻录光盘呢?k3b是KDE环境下的一个CD/DVD刻录软件,有非常容易使用的界面,功能比较齐全.用起来感觉就象是win下的N ...

  7. Linux刻录光盘win10认不到,win10系统无法读取DVD光驱和刻录光盘的设置方法步骤

    许多win10系统用户在工作中经常会遇到对win10系统无法读取DVD光驱和刻录光盘的设置方法,想必大家都遇到过需要对win10系统无法读取DVD光驱和刻录光盘进行设置的情况吧 第一步.安装专业杀毒软 ...

  8. Linux刻录光盘win10认不到,Win10不能读取DVD光驱和刻录光盘解决方法

    近来,有位 win10系统 用户反映自己的电脑因为没有安装杀毒软件,而使电脑中了病毒,导致自己的DVD光驱不能使用,出现了无法读取光盘资料也无法刻录光盘的问题,而且DVD光驱显示的是CD驱动器.这该怎 ...

  9. linux光盘无刻录文件,Ubuntu Linux 中也能轻松刻录光盘

    Brasero是一款为GNOME桌面而开发的CD/DVD刻录软件.Brasero作为Nautilus CD Burner和Serpentine的补充和替代,在Ubuntu 8.04中也将其整合进来了. ...

最新文章

  1. linux python matplotlib 使用,关于Linux:如何在Python的matplotlib中设置“后端”?
  2. List实现类性能和特点分析
  3. 再来一波不错的学习资源
  4. Java集合框架基础介绍
  5. 信息论实验-信源编码算法 (Huffman and Shannonn Fano编码C++实现)
  6. 运动会计算机专业方队,求运动会入场式创意。要低成本的最好。我是计算机专业的。急!在线等,高悬赏!...
  7. MoFlow:生成分子图的可逆流模型
  8. 这些惹人嫌的说话方式,你有吗?
  9. 猫哥教你写爬虫 031--爬虫基础-html
  10. 北大哲学系杨立华先生
  11. 房屋租赁管理系统API
  12. LaTex关于数学公式的使用(5)--- 积分
  13. Springboot:商品库存并发更新,乐观锁失败重试机制
  14. python3:离线安装第三方库的方法
  15. c#语言编程:定义person类,再派生学生类如何存放学生的成绩,C#定义全班学生成绩类,包括姓名,学号,C++成绩,英语成绩,数学成绩,平均成绩...
  16. 安装mysql5.7防火墙关了为什么远程登录不了呢?
  17. js获取的当前时间的月份--getFullYear()、getMonth()、getDate(),本示例是获取当前月份的开始跟结束
  18. win10系统护眼色,word2016页面显示仍是白色
  19. FFmpeg花屏解决(修改源码,丢弃不完整帧)
  20. python3 下载 并 保存 pdf

热门文章

  1. python中的迭代器,可迭代对象(详细剖析)
  2. android程序劫持持程序,安卓activity劫持测试工具开发
  3. js逆向播放量增加,增加视频热度,uuid,sid,buvid3,aid,b_lsid, b_nut 还原实现过程
  4. 这位老哥拯救了我的平板!
  5. win10+php+com组件,分享Win10系统打不开COM组件提示错误代码80040154的解决方法
  6. 网页字体的放大与缩小
  7. 2019 IET之ReID:HPILN: a feature learning framework for cross-modality person re-identification
  8. jieba分词词性说明
  9. Git创建本低分支并提交到远程仓库
  10. 以太坊 私有链搭建 Geth+Mist钱包