zoukankan      html  css  js  c++  java
  • poj 3256(DFS)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=3256

    题意:有k头牛,n个牧场,m条路(每条路相连两个牧场且单向),求全部牛都能到达的牧场有几个。

    分析:用DFS,从每头牛所在牧场开始,走遍该牛能到的牧场,对应能到达的牧场记录来过的牛数

    心得:原先我是对每个牧场作为起点,进行DFS,当然条件是有路并且对应牧场有牛。不过比较牧场数(n≤1000)和牛数(k≤100),实在太浪费时间了。

    部分代码:

    main()里的调用部分:

    for(i=1; i<=cow; i++)//对应某只牛
    {
    	memset(vis, 0, sizeof(vis));//初始化下一个牧场
    	dfs(add[i]);
    }
    

    dfs()

    void dfs(int r)
    {
    	int i;
    	vis[r] = 1;//标记已经来过
    	num[r]++;	//对应来该牧场牛数加一
    	for(i=1; i<=pasture; i++)
    		if(!vis[i] && map[r][i])	dfs(i);
    }
    
  • 相关阅读:
    Java1:Chapter3
    css3圆角和阴影效果
    css3兼容各版本浏览器前缀
    DOM
    数组方法
    Math方法
    JSON
    字符串方法
    日期对象
    定时器
  • 原文地址:https://www.cnblogs.com/submarinex/p/1941245.html
Copyright © 2011-2022 走看看