• codevs 5969 [AK]刻录光盘x


                         题目描述 Description

     • 在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学习。组委会觉得这个主意不错!可是组委会一时没有足够的空光盘,没法保证每个人都能拿到刻录上资料的光盘,怎么办呢?! •  DYJ分析了一下所有营员的地域关系,发现有些营员是一个城市的,其实他们只需要一张就可以了,因为一个人拿到光盘后,其他人可以带着U盘之类的东西去拷贝啊! •  他们愿意某一些人到他那儿拷贝资料,当然也可能不愿意让另外一些人到他那儿拷贝资料,这与我们FJOI宣扬的团队合作精神格格不入!!! •  现在假设总共有N个营员(2<=N<=200),每个营员的编号为1~N。DYJ给每个人发了一张调查表,让每个营员填上自己愿意让哪些人到他那儿拷贝资料。当然,如果A愿意把资料拷贝给B,而B又愿意把资料拷贝给C,则一旦A获得了资料,则B,C都会获得资料。 •  现在,请你编写一个程序,根据回收上来的调查表,帮助DYJ计算出组委会至少要刻录多少张光盘,才能保证所有营员回去后都能得到夏令营资料?

    输入描述 Input Description

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

    输出描述 Output Description

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

    样例输入 Sample Input

     

    2 4 3 0 

    4 5 0 

    1 0  

    样例输出 Sample Output

    1

    数据范围及提示 Data Size & Hint

    2<=N<=200

    分类标签 Tags

    见过因为换行符而引发的血案吗???????

    数据:

    运行结果

    测试点#CDROM1.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM2.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM3.in 结果: 内存使用量: 256kB 时间使用量: 1ms
    测试点#CDROM4.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM5.in 结果: 内存使用量: 128kB 时间使用量: 1ms
    测试点#CDROM6.in 结果: 内存使用量: 256kB 时间使用量: 1ms
    测试点#CDROM7.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM8.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM9.in 结果: 内存使用量: 256kB 时间使用量: 1ms
    测试点#Cdrom10.in 结果: 内存使用量: 256kB 时间使用量: 1ms

    代码:

     1 #include<cstdio>
     2 #define Maxn 201
     3 using namespace std;
     4 int note[Maxn],tot=0;
     5 
     6 int main()
     7 {
     8     int n;
     9     scanf("%d",&n);
    10     for(int i=1; i<=n; i++)
    11     {
    12         for(;;)
    13         {
    14             int num;
    15             scanf("%d",&num);
    16             if(num==0)
    17               break;//结束标志 
    18             note[num]=1;
    19         }
    20     }
    21     for(int i=1; i<=n; i++)
    22         if(note[i]==0) 
    23            tot++;//记录没有出现过的 
    24     if(tot==0)
    25         tot++;//如果都可以通过别人得到,那么就说明只给一个人就行 
    26     printf("%d
    ",tot);
    27     return 0;
    28 }

    AC数据:

    运行结果

    测试点#CDROM1.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM2.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM3.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM4.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM5.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM6.in 结果: 内存使用量: 256kB 时间使用量: 1ms
    测试点#CDROM7.in 结果: 内存使用量: 256kB 时间使用量: 1ms
    测试点#CDROM8.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#CDROM9.in 结果: 内存使用量: 256kB 时间使用量: 0ms
    测试点#Cdrom10.in 结果: 内存使用量: 128kB 时间使用量: 1ms     

    代码:

     1 #include<cstdio>
     2 #define Maxn 201
     3 
     4 using namespace std;
     5 
     6 int note[Maxn],tot=0;
     7 
     8 int main()
     9 {
    10     int n;
    11     scanf("%d",&n);
    12     for(int i=1; i<=n; i++){
    13         for(;;){
    14             int num;
    15             scanf("%d",&num);
    16             if(num==0)
    17               break;//结束标志 
    18             note[num]=1;
    19         }
    20     }
    21     for(int i=1; i<=n; i++)
    22         if(note[i]==0) 
    23            tot++;//记录没有出现过的 
    24     if(tot==0)
    25         tot++;//如果都可以通过别人得到,那么就说明只给一个人就行 
    26     printf("%d",tot);
    27     return 0;
    28 }

    如果运气好也是错,那我倒愿意错上加错!

    ❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀❀

  • 相关阅读:
    Java获取输入
    [转载]Eclipse快捷键 10个最有用的快捷键
    运算符优先级
    Error:Cannot build artifact 'seckill:war' because it is included into a circular dependency (artifact 'seckill:war', artifact 'seckill:war exploded')
    spring boot 扫描不到controller情形一
    注解控制事物方法
    <转载>标签接口
    生成二维码(QRcode(for java version)生成二维码)
    Linux 常见命令
    【C#】File.WriteAllText 类的使用(实现自定义日志记录)
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6705509.html
Copyright © 2020-2023  润新知