题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=211

思路:我的思路是对每一个点,向上广搜,向下广搜,看总共能不能搜到n-1个结点,能,表明该节点的等级确定。

 题目标程给的方法是floyd+统计,似乎简单的多,我弄复杂了,还是贴个代码吧!

代码如下:

#include "stdio.h"
#include "string.h"
#include "queue"
using namespace std;
#define N 105
#define M 4505
#define INF 0x3fffffff struct node
{
int x,y;
int next;
}edge[2*M];
int idx,head[N];
void Init(){ idx=0; memset(head,-1,sizeof(head)); }
void Add(int x,int y)
{
edge[idx].x=x;
edge[idx].y=y;
edge[idx].next = head[x];
head[x] = idx++;
} bool mark[N]; void BFS(int k)
{
int i;
int x,y;
queue<int> q;
q.push(k);
mark[k] = true;
while(!q.empty())
{
x = q.front();
q.pop();
for(i=head[x]; i!=-1; i=edge[i].next)
{
y = edge[i].y;
if(!mark[y])
q.push(y);
mark[y] = true;
}
}
mark[k] = false;
} struct point
{
int x,y;
}p[2*M]; int num[N],num1[N],num2[N]; int main()
{
int n,m;
int i,j;
while(scanf("%d %d",&n,&m),n||m)
{
Init(); //建邻接表初始化
for(i=0; i<m; ++i)
{
scanf("%d %d",&p[i].x,&p[i].y);
Add(p[i].x,p[i].y);
}
for(i=1; i<=n; ++i) //对每个点,往下搜,统计能搜多少个点
{
num1[i]=0;
memset(mark,false,sizeof(mark));
BFS(i);
for(j=1; j<=n; ++j) //统计
{
if(mark[j])
num1[i]++;
}
}
Init();//建邻接表初始化
for(i=0; i<m; ++i)
Add(p[i].y,p[i].x); //再次建邻接表,反向的
for(i=1; i<=n; ++i) //对每个点,往上搜,统计能搜多少个点
{
num2[i]=0;
memset(mark,false,sizeof(mark));
BFS(i);
for(j=1; j<=n; ++j)
{
if(mark[j])
num2[i]++;
}
}
int ans = 0;
for(i=1; i<=n; ++i)
{
num[i] = num1[i]+num2[i];
if(num[i]==n-1)
ans++;
}
printf("%d\n",ans);
}
return 0;
}

nyoj 211 Cow Contest的更多相关文章

  1. nyoj 211——Cow Contest——————【floyd传递闭包】

    Cow Contest 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 N (1 ≤ N ≤ 100) cows, conveniently numbered 1.. ...

  2. NYOJ 211 Cow Contest (弗洛伊德+传递闭包 )

    title: Cow Contest 弗洛伊德+传递闭包 nyoj211 tags: [弗洛伊德,传递闭包] 题目链接 描述 N (1 ≤ N ≤ 100) cows, conveniently nu ...

  3. ACM: POJ 3660 Cow Contest - Floyd算法

    链接 Cow Contest Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Descri ...

  4. POJ 3660 Cow Contest

    题目链接:http://poj.org/problem?id=3660 Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Subm ...

  5. POJ 3660 Cow Contest (闭包传递)

    Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7690   Accepted: 4288 Descr ...

  6. POJ 3660 Cow Contest (floyd求联通关系)

    Cow Contest 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/H Description N (1 ≤ N ≤ 100) ...

  7. POJ 3660 Cow Contest(传递闭包floyed算法)

    Cow Contest Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5989   Accepted: 3234 Descr ...

  8. POJ3660——Cow Contest(Floyd+传递闭包)

    Cow Contest DescriptionN (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a prog ...

  9. BZOJ1612: [Usaco2008 Jan]Cow Contest奶牛的比赛

    1612: [Usaco2008 Jan]Cow Contest奶牛的比赛 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 645  Solved: 433 ...

随机推荐

  1. MVC,如何在视图中声明方法,调用方法?

    <div> <!--在视图中申明方法,此方法的类型已经固定为HelperResult--> @helper ShowHello(string s) { <div> ...

  2. Android --- 斗地主 [牌桌实现源码]

    1.主Activity <span style="font-size:18px;color:#3333ff;">package com.bison; import an ...

  3. EasyUI组合树插件

    一.引用CSS和JS <link href="~js/easyui/easyui.css" rel="stylesheet" type="tex ...

  4. [水煮 ASP.NET Web API2 方法论](3-3)路由默认值

    问题 如何为路由中参数设置默认值. 解决方案 不管使用属性路由还是集中式路由,ASP.NET WEB API 都可以很方便的为路由定义默认参数.在每次客户端请求的时候,如果客户端没有传这些参数,框架会 ...

  5. [CLR via C#]16. 数组

    数组是允许将多个数据项当作一个集合来处理的机制.CLR支持一维数组.多维数组和交错数据(即由数组构成的数组).所有数组类型都隐式地从System.Array抽象类派生,后者又派生自System.Obj ...

  6. BI之SSAS完整实战教程4 -- 部署至SSAS进行简单分析

    上一篇已经创建了多维数据集的结构. 接下来我们将多维数据集的架构定义发送到Analysis Services实例,部署到AS上去. 文章提纲 部署和浏览多维数据集 SSMS使用简介 总结 一.部署和浏 ...

  7. 【学习整理】Tarjan:强连通分量+割点+割边

    Tarjan求强连通分量 在一个有向图中,如果某两点间都有互相到达的路径,那么称中两个点强联通,如果任意两点都强联通,那么称这个图为强联通图:一个有向图的极大强联通子图称为强联通分量.   算法可以在 ...

  8. js 倒计时 跳转

    1. setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. setTimeout() 只执行 code 一次.如果要多次调用,请使用 setInterval() 或者让 code ...

  9. javaweb学习之Servlet开发(二)

    javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个< ...

  10. NTFS碎片

    在Windows操作系统中查看各分区的文件系统: fsutil fsinfo ntfsinfo c: (查看C:盘的文件系统) fsutil fsinfo ntfsinfo d: (查看D:盘的文件系 ...