码迷,mamicode.com
首页 > 其他好文 > 详细

【UOJ#26.】【IOI2014】Game 交互题,构造

时间:2015-02-10 11:24:26      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:uoj#26. ioi2014game   构造   


先给UOJ打个广告。Orz Vfeaking~~~


题解:

两种,都是建立在一个前提下的,

就是一个点(或者点集),如果它的出边都问完了之前就可以知道它是否连通了

那么显然剩下的出边就没有必要问了。


然后这样这些边留到最后问就可以保证小B必胜了。

所以显然小A不能让这种情况发生。


两种方法:

1、 O(n^2) 

维护并查集以及两点集之间的度数,

然后最后一个度数的时候再输出yes并且将两个点集合并。

合并:将被父亲的那个点集到其它点集的度数继承到被儿子的那个点。


2. O(n)

一个点到其它点中最后一个点连边时才输出yes

也就是以下代码。


代码:

#include "game.h"
int cnt[1600];
void initialize(int n){}
int hasEdge(int u,int v)
{
	if(u<v)u=v;
	return ++cnt[u]==u;
	 // 不到最后一刻不告诉你
	//它跟其它(所有点)是否连同
}


【UOJ#26.】【IOI2014】Game 交互题,构造

标签:uoj#26. ioi2014game   构造   

原文地址:http://blog.csdn.net/vmurder/article/details/43699415

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!