/ SB域 /

记录详情

Accepted


  
# 状态 耗时 内存占用
#1 Accepted 1ms 328.0 KiB
#2 Accepted 2ms 716.0 KiB
#3 Accepted 1ms 332.0 KiB
#4 Accepted 5ms 744.0 KiB
#5 Accepted 1ms 460.0 KiB
#6 Accepted 4ms 636.0 KiB
#7 Accepted 1ms 588.0 KiB
#8 Accepted 1ms 588.0 KiB
#9 Accepted 2ms 588.0 KiB
#10 Accepted 5ms 716.0 KiB

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#define inf 999999999
using namespace std;

int n,m;
int stan;
int out=0;
int dis[1005][1005];
int road[1005][1005];
int count[10005];
int temp[10005];

void floyd()
{
	for(int k=1;k<=n;k++)
	{
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=n;j++)
			{
				if(road[i][j]>(road[i][k]+road[k][j]))
				{
					road[i][j]=road[i][k]+road[k][j];
				}
			}
		}
	}
}

int main()
{
	scanf("%d%d",&n,&m);
	memset(count,0,sizeof(count));
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(i==j)
			continue;
			road[i][j]=inf;
		}
	}
	stan=(n+1)/2;
	for(int i=1;i<=m;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		road[x][y]=1;
	}
	floyd();
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(i==j)
			continue;
			if(road[i][j]!=inf)
			{
				count[j]++;
				temp[i]++;
			}
		}
	}
	for(int i=1;i<=n;i++)
	if(count[i]>=stan||temp[i]>=stan) out++;
	cout<<out;
	return 0;
}

信息

递交者
类型
递交
题目
珍珠
题目数据
下载
语言
C++
递交时间
2019-03-27 13:38:20
评测时间
2019-03-27 13:38:21
评测机
分数
100
总耗时
28ms
峰值内存
744.0 KiB