大牛之路II

时间限制:500MS  内存限制:1000K 提交次数:138 通过次数:31

题型: 编程题   语言: C++;C

Description

要成为ACM大牛,要掌握很多必需的知识点。某些知识点可以推导出别的知识点,所以在比赛中遇到的新问题,很多时候可以由你学过的知识中推导得到。现在给出要掌握的所有知识点数及知识点之间的推导关系。注意,若A知识可以直接(间接)推导出B知识,B知识也是有可能直接(间接)推导出A知识的。一个新手想尽快具有解决所有知识点的能力,他至少需要掌握多少知识呢?

输入格式

多组数据,每组数据格式为:
第一行1<=n<=18,0<=m<=n*n.。n表示必需掌握的知识点数目,编号0~n-1。m为知识点间推导关系总数。接下来m行,每行A B两个数,表示从A知识可以推导出B知识。
当n==0 && m==0时,结束程序。两个Case间有一空行。

输出格式

一个数x,表示最少要掌握的知识数。

输入样例

8 4
0 1
0 2
1 3
1 4

2 2
0 1
1 0

0 0

输出样例

4
1

这里简述flag数组的作用,先把flag所有元素初始化为0,在这题中3 20 10 2这类例子的结果应该是2(即0 2 都应该学) flag作为哨兵,每计算过后把结果改为1,下次遇到直接跳过

#include<cstdio>
#include<cstring>
int pre[1000];
int flag[20];
int find(int x)
{
    return pre[x]==x?x:(pre[x]=find(pre[x]));
}
int main()
{
    int i,n,m;
    while(1)
    {
        scanf("%d%d",&n,&m);
        memset(flag,0,sizeof(flag));
        if(!n&&!m) break;
        for(i=0;i<n;i++)
        pre[i]=i;
        int a,b,total;
        total=n;
        for(i=0;i<m;i++)
        {
            scanf("%d%d",&a,&b);
            if(flag[b]) continue;

            a=find(a);
            b=find(b);
            flag[b]=1;
            if(a!=b) {pre[a]=b;total--;}
        }
        printf("%d\n",total);
    }
    return 0;
}

时间: 2024-08-05 19:37:33

大牛之路II的相关文章

[ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发

我也想过跳过C#高级知识点概要直接讲MVC,但经过前思后想,还是觉得有必要讲的.我希望通过自己的经验给大家一些指引,带着大家一起走上ASP.NET MVC大牛之路,少走弯路.同时也希望能和大家一起交流,这样也能发现我自己的不足,对我自己的帮助也是非常大的. 建议大家对C#撑握的不错的时候,可以去看一些开源项目.走技术这条路,就要耐得住寂寞(群里双休日说要让群主找妹子进群的人必须反思),练好内功.不撑握C#高级知识点,别想看懂优秀的开源项目,更别指望吸收其编程思想:你的水平,随时可以被一个实习生代

[ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件

在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但足矣.要深入研究还需要去查看更多的专业资料. 要成为大牛,必然要有扎实的基本功,不然时间再长项目再多也很难有大的提升.本系列讲的C# 高级知识点,是非常值得去撑握的,不仅可以让你写代码时游刃有余,而且去研究和学习一些开源项目时,也不会显得那么吃力了. 希望大家记住,这里讲的所有的知识点,不仅仅是了解

[ASP.Net] 转 &gt; ASP.NET MVC 大牛之路

URL: http://www.cnblogs.com/willick/ [ASP.NET MVC 大牛之路]01 - 开篇 [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件

[ASP.NET MVC 大牛之路]01 - 开篇

匆匆2014,转眼就到末尾了.在这一年,你还有哪事情些想做而没有做? 2014年在我身上发生了两件意义重大的事,一是正月初一宝宝出生,我升级成为了爸爸:二是加入了瞬聘网,成为了技术负责人. 2014我计划想做的事,比如带家人去一次旅行.看完家里那几本想看而没看的书.写完[ASP.NET MVC 大牛之路]系列博客.做一个教育类的网站等等,计划其实都还算合理,但终究还是80%的事没有完成,50%的事根本没有去做. 去年结束了[ASP.NET MVC 小牛之路]系列,本来计划在2014年接着写大牛之

TB级(小白到大牛之路)技术视频资源福利大放送

因此民工哥连夜整理了相关的资源放出,相关详情请点击下面的链接查看TB级(小白到大牛之路)技术视频资源福利大放送 更多内容请关注民工哥公众号 原文地址:http://blog.51cto.com/mingongge/2058991

8611&#160;大牛之路I

时间限制:500MS  内存限制:1000K 提交次数:157 通过次数:62 题型: 编程题   语言: C++;C Description 要成为ACM大牛,要掌握很多必需的知识点.某些知识点可以推导出别的知识点,所以在比赛中遇到的新问题,很多时候可以由你学过的知识中推导得到.现在给出要掌握的所有知识点数及知识点之间的推导关系.为了降低难度,假定知识的这种推导关系是单向的,即若A知识能直接(或间接)推导出B知识,那么B知识是无法直接(或间接)推导出A知识的.一个新手想尽快掌握所有知识点,他至

influxdb 小白到大牛之路

https://github.com/influxdata/influxdb

厚着脸皮求领导写了一篇java小白进阶大牛之路!!!

缘起&应朋友之邀 2019年已经过去两个月了,应朋友之邀,写写自己的个人经历,与其说经历还不如是自我的总结与反思.2012年2月份只身一人拖着行李箱来到北京库巴科技有限公司实习,那时候库巴处在高速发展的阶段,我记得那一年库巴招了300多个应届毕业生,光技术就招了50多人,有运维.测试.开发.产品经理.那时候公司有宿舍,4个人一间,上下铺,条件虽然艰苦了一些,但认识了很多好朋友,至今还在保持着联系.下班之余大家经常一起吃饭喝酒,也就是那个时间胖了很多,回学校答辩的时候老师说:“你怎么胖成这样了,都

【小白到大牛之路】交换机后台管理之用户输入

项目需求 用户登录时,需要输入用户名和密码. 项目实现 #include <stdio.h> int main(void) {// 定义变量,用来表示用户名和密码char name;int password; // 输入用户名和密码 printf("请输入用户名:"); scanf("%c", &name); printf("请输入密码:"); scanf("%d", &password); /*