[ARC105E] Keep Graph Disconnected
好题。
如果 \(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的更多相关文章
- ValueError: Graph disconnected: cannot obtain value for tensor Tensor
一般是Input和下面的变量重名了,导致model里面的input变成了第二次出现的Input变量,而不是最开始模型中作为输入的Input变量 改正方法:给第二个变量赋一个新名字即可
- Course Selection CodeChef - RIN
All submissions for this problem are available. Read problems statements in Mandarin Chineseand Russ ...
- HDU 1845 Jimmy’s Assignment(二分匹配)
Jimmy’s Assignment Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Other ...
- hdu1845 Jimmy’s Assignment --- 完整匹配
意甲冠军: 它需要一个特殊的图,以找到最大匹配.该图的特征是:无向图,度的每个节点3.这是一个双边连接组件(the graph is 2-edge-connected (that is, at lea ...
- HDU - 1845 Jimmy’s Assignment (二分匹配)
Description Jimmy is studying Advanced Graph Algorithms at his university. His most recent assignmen ...
- Introduction to graph theory 图论/脑网络基础
Source: Connected Brain Figure above: Bullmore E, Sporns O. Complex brain networks: graph theoretica ...
- 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 ...
- Graph Databases—The NOSQL Phenomenon阅读笔记
本章内容着重对了NOSQL和RDBMS(关系型数据库管理系统)的不同,以及其各自背后设计时考虑的因素.然后接下来,着重讲述了NOSQL的4种分类方法.下面我们将对重要知识点进行汇总. 1.We def ...
- FB面经Prepare: Bipartite a graph
input friends relations{{1,2}, {2,3}, {3,4}} 把人分成两拨,每拨人互相不认识, 所以应该是group1{1,3}, group2{2,4} 这道题应该是ho ...
- [IR] Graph Compression
Ref: [IR] Compression Ref: [IR] Link Analysis Planar Graph From: http://www.csie.ntnu.edu.tw/~u91029 ...
随机推荐
- 给你安利一款带有AI功能的数据库管理工具
写在前面 说到数据库管理工具,大家应该不陌生了 小伙伴们应该都用过Navicat.DBever.DataGrip.SQLyog.plsqldeveloper等数据库管理工具 这些工具呢都各自有优缺点. ...
- WPF使用TextBlock实现查找结果高亮显示
在应用开发过程中,经常遇到这样的需求:通过关键字查找数据,把带有关键字的数据显示出来,同时在结果中高亮显示关键字.在web开发中,只需在关键字上加一层标签,然后设置标签样式就可以轻松实现. 在WPF中 ...
- tailwindcss -原子化 CSS 框架
原子化 CSS 框架 我记得很久之前有时候为了少写些css,我们通常会有如下的样板代码 .block { display: block; } .flex { display:flex } .flex- ...
- DHorse v1.3.2 发布,基于 k8s 的发布平台
版本说明 新增特性 构建版本.部署应用时的线程池可配置化: 优化特性 构建版本跳过单元测试: 解决问题 解决Vue应用详情页面报错的问题: 解决Linux环境下脚本运行失败的问题: 解决下载Maven ...
- Laf 云开发平台及其实现原理
Laf 产品介绍 自我介绍 大家好,我是来自 Laf 团队的王子俊,很高兴今天能在这里给大家分享我们 Laf 云开发平台及其实现原理.本来想说一点什么天气之类的话作为开头,但主持人都说完啦,我就不多说 ...
- 使用GPU训练Pytorch模型
如何使用GPU训练Pytorch模型 这两天的深度学习实验真实让人头疼,传说中的"猫狗大战",对模型的训练用CPU的话9h起步,12h是常态,大学生哪耗得起,因此查找资料搭建了GP ...
- 聊聊wireshark的进阶使用功能
1. 前言 emmm,说起网络知识学习肯定离不来wireshark工具,这个工具能够帮助我们快速地定位网络问题以及帮助正在学习网络协议这块的知识的同学验证理论与实际的一大利器,平时更多的只是停留在初步 ...
- 深入理解RocketMQ 广播消费
这篇文章我们聊聊广播消费,因为广播消费在某些场景下真的有奇效.笔者会从基础概念.实现机制.实战案例.注意事项四个方面一一展开,希望能帮助到大家. 1 基础概念 RocketMQ 支持两种消息模式:集群 ...
- Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)&&(CVE-2022-2296)
Spring Boot 目录遍历--表达式注入--代码执行--(CVE-2021-21234)&&(CVE-2022-22963)&&(CVE-2022-22947)& ...
- 聊聊Maven的依赖传递、依赖管理、依赖作用域
1. 依赖传递 在Maven中,依赖是会传递的,假如在业务项目中引入了spring-boot-starter-web依赖: <dependency> <groupId>org. ...