hud 5876 2016 ACM/ICPC Asia Regional Dalian Online
题意:给一个图 给定一个点s 求补图中s点到达各个点的最短路
思路:从s点开始bfs 在图中与s点有连接的都是在补图中不能直接到达的点 反之在补图中都是可以直接到达的点 由此bfs ((( 诡异的写法。。。
AC代码:
#include "iostream"
#include "string.h"
#include "stack"
#include "queue"
#include "set"
#include "map"
#include "algorithm"
#include "stdio.h"
#include "math.h"
#define ll long long
#define mem(a) memset(a,0,sizeof(a))
#define max(a,b) a > b ? a : b
#define min(a,b) a < b ? a : b
#define INF 20005
using namespace std; int dis[];
int vis[]; vector<int>Node[]; void Delete_Edge(int u,int v)
{
Node[u].push_back(v);
Node[v].push_back(u);
} void fun(int s,int n)
{
queue<int>Q;
set<int> s1;
set<int> s2;
set<int> *ss;
set<int> *ss1 = &s1;
set<int> *ss2 = &s2;
Q.push(s);
dis[s] = ;
vis[s] = ;
for(int i=; i<=n; i++)
s1.insert(i);
s1.erase(s); while(!Q.empty())
{
int r=Q.front();
Q.pop();
for(int i=; i<Node[r].size(); i++)
{
if(!ss1->count(Node[r].at(i))) continue;
ss2->insert(Node[r].at(i)); //未找到
ss1->erase(Node[r].at(i)); //找到
}
set<int>::iterator it;
for(it=ss1->begin(); it!=ss1->end(); it++)
{
if(!vis[*it])
{
vis[*it] = ;
dis[*it] = dis[r]+;
Q.push(*it);
}
}
ss1->clear();
ss = ss1, ss1 = ss2, ss2 = ss;
}
} int main()
{
int n,m,t,s;
scanf("%d",&t);
while(t--)
{ mem(vis);
scanf("%d%d",&n,&m);
for(int i = ; i <= n; ++i) dis[i] = ;
for(int i = ; i <= n; ++i) Node[i].clear();
for(int i=; i<=m; i++)
{
int u,v;
scanf("%d%d",&u,&v);
Delete_Edge(u,v);
}
scanf("%d",&s);
fun(s,n);
int k = ;
for(int i=; i<=n; i++)
{
if(i!=s)
{
if(k==)
printf("%d",dis[i]==?-:dis[i]);
else
printf(" %d",dis[i]==?-:dis[i]);
k++;
}
}
printf("\n");
}
return ;
}
hud 5876 2016 ACM/ICPC Asia Regional Dalian Online的更多相关文章
- HDU 5876 Sparse Graph 【补图最短路 BFS】(2016 ACM/ICPC Asia Regional Dalian Online)
		Sparse Graph Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)To ... 
- 2016 ACM/ICPC Asia Regional Dalian Online 1002/HDU 5869
		Different GCD Subarray Query Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K ( ... 
- 2016 ACM/ICPC Asia Regional Dalian Online 1006 /HDU 5873
		Football Games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ... 
- HDU 5874 Friends and Enemies 【构造】 (2016 ACM/ICPC Asia Regional Dalian Online)
		Friends and Enemies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Othe ... 
- HDU 5875 Function 【倍增】 (2016 ACM/ICPC Asia Regional Dalian Online)
		Function Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total ... 
- HDU 5873 Football Games 【模拟】 (2016 ACM/ICPC Asia Regional Dalian Online)
		Football Games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ... 
- hdu 5868   2016 ACM/ICPC Asia Regional Dalian Online 1001 (burnside引理 polya定理)
		Different Circle Permutation Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K ... 
- 2016 ACM/ICPC Asia Regional Dalian Online Football Games
		Football Games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ... 
- 2016 ACM/ICPC Asia Regional Dalian Online 1008 Function 二分+RMQ
		Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submissio ... 
随机推荐
- golang笔记——map
			通过 new 创建的引用类型对象是不完整创建,比如 map,它仅分配了字典类型本身所需的内存(指针包装),而没有分配键值存储内存,也没有初始化散列桶等内部属性,因此无法工作,如下代码就是错误的: p ... 
- spring-quartz.xml
			<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://ww ... 
- CF memsql Start[c]UP 2.0 B
			CF memsql Start[c]UP 2.0 B B. Distributed Join time limit per test 1 second memory limit per test 25 ... 
- mount -t  nfs 的使用
			服务安装:1. 在VMware Ubuntu中安装NFS服务: sudo apt-get install nfs-kernel-server2. 安装成功会出现配置文件/etc/exports. ls ... 
- linux各目录的作用
- 初学者在ubuntu下安装使用git(上)
			一 git的安装测试 在Ubuntu系统下的bash中输入git,如果提示没有安装的话,用命令 sudo apt-get install git 安装git,安装完成之后通过 git –versi ... 
- StartUML反向(逆向)Java工程通过代码生成类图
			在软件工程中,通过都是先了详细设计,然后按照详细设计来进行开发.在编写详细设计的时候,通常都会画一些类图.时序图.流程图等等UML设计,然后通过uml类图生成代码,这个属于正向工程生成代码,然而在实 ... 
- SQL查询第m条到第n条的方法
			SQL查询第m条到第n条的方法 如表名为GOOD Sselect top (n-m) * from GOODS where (某一列名) not in (select top m (某一列名) fro ... 
- ios如何一个证书多台设备测试
			在苹果开发者网站申请的证书,是授权mac设备的开发或者发布的证书,这意味着一个设备对应一个证书,但是99美元账号只允许生成3个发布证书,两个开发证书,这满足不了多mac设备的使用,使用p12文件可以解 ... 
- 解决JettyMavenPlugin: Failed to load class "org.slf4j.impl.StaticLoggerBinder"
			<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</arti ... 
