1383:刻录光盘(cdrom)

2024-03-29 15:48
文章标签 刻录光盘 cdrom 1383

本文主要是介绍1383:刻录光盘(cdrom),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://ybt.ssoier.cn:8088/problem_show.php?pid=1383

【题目描述】

在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习。组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,怎么办呢?!

DYJ分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,因为一个人拿到光盘后,其他人可以带着U盘之类的东西去拷贝啊!

他们愿意某一些人到他那儿拷贝资料,当然也可能不愿意让另外一些人到他那儿拷贝资料,这与我们FJOI宣扬的团队合作精神格格不入!!!

现在假设总共有N个营员(2≤N≤200),每个营员的编号为1~N。DYJ给每个人发了一张调查表,让每个营员填上自己愿意让哪些人到他那儿拷贝资料。当然,如果A愿意把资料拷贝给B,而B又愿意把资料拷贝给C,则一旦A获得了资料,则B,C都会获得资料。

现在,请你编写一个程序,根据回收上来的调查表,帮助DYJ计算出组委会至少要刻录多少张光盘,才能保证所有营员回去后都能得到夏令营资料?

【输入】

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

【输出】

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

【输入样例】

5
2 4 3 0
4 5 0
0
0
1 0

【输出样例】

1

看的别人的代码写的,并查集不对,用的一种Floyd方法,用跑p【】数组来记录

#include<bits/stdc++.h>
using namespace std;
int n;
int mapp[1000][1000];
int p[1000];
int main()
{memset(mapp,0,sizeof(mapp));scanf("%d",&n);for(int i=1;i<=n;i++) p[i]=i;     //初始化p[i]for(int i=1;i<=n;i++){int x;while(scanf("%d",&x)&&x!=0){mapp[i][x]=1;}}for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){mapp[i][j]=mapp[i][j]||(mapp[i][k]&&mapp[k][j]);   //表示从i点可以到达j点}}}for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(mapp[i][j]){  //表示i和j可以强连接p[j]=p[i];//这个思想和并查集的思想很类似,也就是说p[i]是p[j]的父节点了}}}int cnt=0;for(int i=1;i<=n;i++){if(p[i]==i){   //表示i是根节点(一片的根或只有他自己)cnt++;}}printf("%d\n",cnt);return 0;
}

 

这篇关于1383:刻录光盘(cdrom)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/858999

相关文章

COJ 1383 STL中的set

[STL][007]字符串查找 Time Limit: 5000 ms     Memory Limit: 65536 KB Total Submit: 40     Accepted: 1 Description 现在给你一个字典,再给出几个字符串,让你查找,这些字符串是否在其中。 Input 第一行是两个整数M,N分别表示字典数和字符串数。 第2至第M+

【C++题解】1383. 奶牛和草丛

问题:1383. 奶牛和草丛 类型:深度搜索 题目描述: 奶牛Bessie计划好好享受柔软的春季新草。新草分布在 R 行 C 列的牧场里。它想计算一下牧场中的草丛数量。 在牧场地图中,每个草丛要么是单个“#”,要么是有公共边的相邻多个“#”。给定牧场地图,计算有多少个草丛。 输入: 第一行包含两个整数 R 和 C ,中间用单个空格隔开。 接下来 R 行,每行 C 个字符,描述牧场地图

Nero刻录光盘软件-极好用

目录 一、下载Nero 二、软件安装 三、刻录数据 前言         刻录之前准备一张新的光盘,之前一旦使用过,就无法刻录,一定要新的光盘。 一、下载Nero nero官网下载地址:Nero下载 csdn免费下载地址:https://download.csdn.net/download/ManagerUser/88605010 二、软件安装 nero软件包解压即可,无需

#动态规划#SP703 codevs 2182 1383 CH 5102 Mobile Service 移动服务

题目 有三个移动服务员,最初分别在位置1,2,3处。 如果某个位置(用一个整数表示)有一个请求,那么公司必须指派某名员工赶到那个地方去。某一时刻只有一个员工能移动,且不允许在同样的位置出现两个员工。从 p p p到 q q q移动一个员工,需要花费 c ( p , q ) c(p,q) c(p,q)。求最小花费。 分析 用动态规划,但是普通的动态规划不仅时间超时,空间也无法满足,所以需要

刻录光盘(Tarjan算法求强连通分量)

题目概述 给定N个人和一些人与人之间的关系(u,v),表示u愿意借给v光盘,那么对于存在的(u,v)(v,w)表示u愿意借给v光盘,v愿意借给w光盘,同时u愿意借给w光盘。求最少要用多少光盘才会让这N个人全部能够借到光盘。 数据规模 2<=N<=200 思路 这个题我认为比较难想的就是Tarjan强联通分量缩点,然后变成一个有向无环图,求入度为0的点的个数,然后输出即可。注意这个题存在诡

【SSL_1383】车II

车II Description 有一个nm的棋盘(n、m≤80,nm≤80)要在棋盘上放k(k≤20)个棋子,使得任意两个棋子不相邻。求合法的方案总数。 Input n,m,k Output 方案总数 Sample Input 3 3 2 Sample Output 24 解题思路 我们用 DFS 枚举每一种情况,然后枚举冲突,动态转移即可 #include<io

win8计算机刻录功能吗,如何在win8系统中刻录光盘?

如何在win8系统中刻录光盘? 腾讯视频/爱奇艺/优酷/外卖 充值4折起 虽然新系统win10已经取消了光盘刻录和光盘播放的功能,但是在占有市场主导地位的win7系统和win8系统中,这个刻录的功能还是存在的,其实,在市场中,还是有不少的行业仍然需要这个功能,那么大家知道该如何刻录光盘吗?其实步骤很简单,下面小编就来介绍一下,如何在win8系统中刻录光盘? 1.首先,咱们返回到win8系统的传统

6.4 ubuntu 7.04 Linux下刻录光盘

6.4 ubuntu 7.04 Linux 下刻 录 光 盘 - - - 作者: jimmy3719 cdrecord -v speed=2 dev=0,0,0 cd.iso cdrecord 软 件在 发 行版中一般都有,如果安装系 统时 没有安装它,在你的安装 盘 里 应该 能找到,安装 it 。 speed 是表明刻 录 速度的 选项 ,可根据 实际 情况 设 置,但不要超 过

银河麒麟Kylin-Server-V10-SP3使用ISO镜像搭建本地内网YUM/DNF源cdrom/http

机房服务器安装一般是内网环境,需要配置本地的YUM/DNF源。本文介绍通过ISO镜像搭建内网环境的UM/DNF源 准备工作: 提前准备好Kylin-Server-V10-SP3的ISO镜像文件。 本机IP地址:192.168.40.201 镜像存放目录/data/iso/Kylin-Server-V10-SP3-General-Release-2303-ARM64.iso mkdir

Nero刻录光盘软件-极好用

目录 一、下载Nero 二、软件安装 三、刻录数据 前言         刻录之前准备一张新的光盘,之前一旦使用过,就无法刻录,一定要新的光盘。 一、下载Nero nero官网下载地址:Nero下载 csdn免费下载地址:https://download.csdn.net/download/ManagerUser/88605010 二、软件安装 nero软件包解压即可,无需