题目链接

好题。

如果 \(1\) 和 \(n\) 一直联通,开始即结束。

如果 \(n\mod 4=1\),那么 \(\frac 12x(x+1)+\frac12(n-x)(n-x+1)\) 为偶数。

如果 \(n\mod 4=3\),那么 \(\frac 12x(x+1)+\frac12(n-x)(n-x+1)\) 为奇数。

这两种情况最后连的边的数量奇偶固定,结合 \(m\) 的大小可以算出答案。

后面 \(n\mod 4=2\) 和 \(n\mod 4=0\) 的情况是类似的,以 \(n\mod4=2\) 为例。

如果 \(m\) 为奇数,先手目标为让最后两个连通大小为奇数,后手要让最后两个连通块大小为偶数。那么当且仅当一开始 \(1\) 所在连通块大小和 \(n\) 所在连通块大小都是偶数,后手能必胜。

如果 \(m\) 为偶数,先手目标为让最后两个连通大小为偶数,后手要让最后两个连通块大小为奇数。那么当且仅当一开始 \(1\) 所在连通块大小和 \(n\) 所在连通块大小都是奇数,后手能必胜。

// LUOGU_RID: 135034621
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int T,n,m,fa[N],sz[N];
int find(int x)
{
if(fa[x]==x)
return x;
return fa[x]=find(fa[x]);
}
int main()
{
// freopen("deadlock.in","r",stdin);
// freopen("deadlock.out","w",stdout);
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
int c=0;
for(int i=1;i<=n;i++)
fa[i]=i,sz[i]=1;
for(int i=1,u,v;i<=m;i++)
{
scanf("%d%d",&u,&v);
if(find(u)^find(v))
{
sz[find(v)]+=sz[find(u)];
fa[find(u)]=find(v);
}
}
if(find(1)==find(n))
{
puts("Second");
continue;
}
if(n%4==1)
{
if(m&1)
puts("First");
else
puts("Second");
continue;
}
if(n%4==3)
{
if(m&1)
puts("Second");
else
puts("First");
continue;
}
if(n%4==0)
{
if(m&1)
{
if(sz[find(1)]%2==1&&sz[find(n)]%2==1)
puts("Second");
else
puts("First");
}
else
{
if(sz[find(1)]%2==0&&sz[find(n)]%2==0)
puts("Second");
else
puts("First");
}
continue;
}
if(m&1)
{
// printf("odd:%d %d ",sz[find(1)]&1,sz[find(n)]&1);
if(sz[find(1)]%2==0&&sz[find(n)]%2==0)
puts("Second");
else
puts("First");
}
else
{
// printf("even:%d %d ",sz[find(1)]&1,sz[find(n)]&1);
if(sz[find(1)]%2==1&&sz[find(n)]%2==1)
puts("Second");
else
puts("First");
}
}
}

[ARC105E] Keep Graph Disconnected的更多相关文章

  1. ValueError: Graph disconnected: cannot obtain value for tensor Tensor

    一般是Input和下面的变量重名了,导致model里面的input变成了第二次出现的Input变量,而不是最开始模型中作为输入的Input变量 改正方法:给第二个变量赋一个新名字即可

  2. Course Selection CodeChef - RIN

    All submissions for this problem are available. Read problems statements in Mandarin Chineseand Russ ...

  3. HDU 1845 Jimmy’s Assignment(二分匹配)

    Jimmy’s Assignment Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Other ...

  4. hdu1845 Jimmy’s Assignment --- 完整匹配

    意甲冠军: 它需要一个特殊的图,以找到最大匹配.该图的特征是:无向图,度的每个节点3.这是一个双边连接组件(the graph is 2-edge-connected (that is, at lea ...

  5. HDU - 1845 Jimmy’s Assignment (二分匹配)

    Description Jimmy is studying Advanced Graph Algorithms at his university. His most recent assignmen ...

  6. Introduction to graph theory 图论/脑网络基础

    Source: Connected Brain Figure above: Bullmore E, Sporns O. Complex brain networks: graph theoretica ...

  7. infoq - neo4j graph db

    My name is Charles Humble and I am here at QCon New York 2014 with Ian Robinson. Ian, can you introd ...

  8. Graph Databases—The NOSQL Phenomenon阅读笔记

    本章内容着重对了NOSQL和RDBMS(关系型数据库管理系统)的不同,以及其各自背后设计时考虑的因素.然后接下来,着重讲述了NOSQL的4种分类方法.下面我们将对重要知识点进行汇总. 1.We def ...

  9. FB面经Prepare: Bipartite a graph

    input friends relations{{1,2}, {2,3}, {3,4}} 把人分成两拨,每拨人互相不认识, 所以应该是group1{1,3}, group2{2,4} 这道题应该是ho ...

  10. [IR] Graph Compression

    Ref: [IR] Compression Ref: [IR] Link Analysis Planar Graph From: http://www.csie.ntnu.edu.tw/~u91029 ...

随机推荐

  1. API接口的设计思路

    ​ API接口设计是软件开发中非常重要的一环,良好的设计规范能够提高开发效率.减少问题和错误,并增强系统的可维护性和可扩展性.本文从程序员的视角,讨论一些常见的API接口设计规范. 一.遵循RESTf ...

  2. windows 网络模拟工具分享

    [下载地址] Releases · jagt/clumsy · GitHub [介绍] 无需安装 无需篡改和代理 系统级限制,不针对单个程序,但可以针对单个IP 离线也可以限制,随停随用 界面简单 [ ...

  3. 在线问诊 Python、FastAPI、Neo4j — 创建 饮食节点

    目录 饮食数据 创建节点 根据疾病.症状,判断出哪些饮食不能吃,哪些建议多吃 饮食数据 foods_data.csv 建议值用""引起来.避免中间有,号造成误识别 饮食 " ...

  4. 算法打卡|Day2 数组part02

    Day2 数组part02 今日任务:977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II 目录 Day2 数组part02 今日任务:977.有序数组的平方 ,209.长度最小的 ...

  5. SQL函数union,union all整理

    SQL集合函数--并集union,union all 本次整理从4个方面展示union函数,union all函数的风采: 1.集合函数使用规则 2.集合函数作用 3.数据准备及函数效果展示 首先1. ...

  6. Flask框架——详解URL、HTTP请求、视图函数和视图类

    文章目录 1 什么是url? 2 为什么要有url? 3 如何应用url? 3.1 url和路由的区别. 3.2 url传参的两种 3.2.1动态路由传参 3.2.1.1 动态路由的过滤 3.2.2 ...

  7. jdk-14.0.1环境搭建及cmd环境编译执行

    1.安装包获取 https://www.oracle.com/java/technologies/javase/jdk14-archive-downloads.html 2.环境变量配置 最新版本的J ...

  8. Jmeter连接数据库sql语句操作,查询后取值做变量

    第一步 :导入jar包 第二步 :创建JDBC Reques 第三步 :创建JDBC Connection Configuration  第四步:在request中输入数据进行操作 Query Typ ...

  9. Merge-Lrc 合并歌词的小工具

    Merge-Lrc 背景 音乐区有群友希望各种乱七八糟的歌词(lrc 格式居多,里面甚至还有翻译)可以整理成单一的文件,或者一个仅翻译的歌词可以和原文的歌词合并.于是就开发了这款工具.地址:https ...

  10. JS个人总结(2)

    1.null被认为是一个空的对象引用..如果定义的变量准备将来用保存对象,最好将该变量初始化null.即 var x=null;这样只有检查null值就可以知道这个变量是否已经保存了一个对象.. 2. ...