zoukankan      html  css  js  c++  java
  • 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 }

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

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

  • 相关阅读:
    PAT Basic 1077 互评成绩计算 (20 分)
    PAT Basic 1055 集体照 (25 分)
    PAT Basic 1059 C语言竞赛 (20 分)
    PAT Basic 1072 开学寄语 (20 分)
    PAT Basic 1049 数列的片段和 (20 分)
    蓝桥杯BASIC-13 数列排序
    蓝桥杯入门——3.序列求和
    蓝桥杯入门——2.圆的面积
    蓝桥杯入门——1.Fibonacci数列
    树的总结(遍历,BST,AVL原型,堆,练习题)
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6705509.html
Copyright © 2011-2022 走看看