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 }

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

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

  • 相关阅读:
    附加数据库对于服务器失败5120
    c#程序调试没有问题,Ctrl+F5运行就挂
    c#让某个窗体一直显示于桌面最上方
    c#调用GrADS
    备份对于服务器“”失败,加载的介质已格式化为支持1个介质簇,但根据指定的备份设备,应支持2个介质簇
    Assembly.Load()出错
    对控件部分的截图和录像
    创建oracle本地数据库步骤详解
    基于windows的resin配置
    oracle 插入记录,字段自动获取当前系统时间(YYYY-MM-DD HH24:MI:SS)
  • 原文地址:https://www.cnblogs.com/zxqxwnngztxx/p/6705509.html
Copyright © 2011-2022 走看看