[ARC105E] Keep Graph Disconnected题解

news2024/9/9 1:18:30

题目

考虑加任意一条边时都会输的图的状态:图被分成两个强联通分量,每一个强联通分量都是一个完全图。

示例
也就是说,假设一开始节点 1 1 1 和节点 n n n 不联通,那么还可以加 n ( n − 1 ) 2 − m − c n t 1 ( n − c n t 1 ) \frac{n(n-1)}2-m-cnt_1(n-cnt_1) 2n(n1)mcnt1(ncnt1) 次,其中 c n t x cnt_x cntx 代表 x x x 所在联通块大小。

  • n n n 为奇数
    • 此时 c n t 1 ( n − c n t 1 ) cnt_1(n-cnt_1) cnt1(ncnt1) 一定是偶数,只用对 n ( n − 1 ) 2 − m \frac{n(n-1)}2-m 2n(n1)m 进行讨论,你偏要加上 c n t 1 ( n − c n t 1 ) cnt_1(n-cnt_1) cnt1(ncnt1) 也不是不行
  • 否则:
    • c n t 1 = c n t n cnt_1=cnt_n cnt1=cntn
      • 此时先手一定可以选择 c n t 1 cnt_1 cnt1 c n t n cnt_n cntn 的奇偶性(通过增加联通块的点),所以先手必胜。
      • 否则,对 n ( n − 1 ) 2 − m − c n t 1 ( n − c n t 1 ) \frac{n(n-1)}2-m-cnt_1(n-cnt_1) 2n(n1)mcnt1(ncnt1) 进行判断。

Code:

#include <bits/stdc++.h>
#define int long long
using namespace std;
int t, n, m;
int f[200100], cnt[200100];
int find(int x) {return x == f[x] ? x : f[x] = find(f[x]);}

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> t;
	while (t--) {
		cin >> n >> m;
		for (int i = 1; i <= n; i++) {
			f[i] = i;
			cnt[i] = 0;
		}
		for (int i = 1; i <= m; i++) {
			int a, b;
			cin >> a >> b;
			f[find(b)] = find(a);
		}
		for (int i = 1; i <= n; i++) {
			cnt[find(i)]++;
		}
		if (find(1) == find(n)) {
			cout << "Second\n";
		}
		else if (n % 2) {
			if (((n * (n - 1) / 2) - m) % 2) cout << "First\n";
			else cout << "Second\n";
		}
		else {
			if (cnt[find(1)] % 2 != cnt[find(n)] % 2) {
				cout << "First\n";
			}
			else {
				if (((n * (n - 1) / 2) - m - cnt[find(1)] * (n - cnt[find(1)])) % 2) cout << "First\n";
				else cout << "Second\n";
			}
		}
	}
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1958999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

78.SAP ME - SAP ME和SAP NetWeaver log files的位置

目录 1.defaultTrace files 内容 文件位置 2.dev_server files 内容 文件位置 3.dev_icm files 内容 文件位置 4.responses.trc files 内容 文件位置 1.defaultTrace files You should always check this log first when any system issue is reported 内容 包含…

经典文献阅读之--GraphAD(端到端自动驾驶的交互场景图)

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…

什么是项目计划?项目计划如何制定?

做不好项目计划的项目管理&#xff0c;注定会失败&#xff01; 项目计划是帮助管理人员有效实现目标的非常重要的一环&#xff0c;在开始任何项目之前&#xff0c;制定一份详细的计划作为所有参与者的指导性文件非常重要。那么什么是项目计划&#xff1f;项目计划又该如何制定…

springboot集成thymeleaf实战

引言 笔者最近接到一个打印标签的需求&#xff0c;由于之前没有做过类似的功能&#xff0c;所以这也是一次学习探索的机会了&#xff0c;打印的效果图如下&#xff1a; 这个最终的打印是放在58mm*58mm的小标签纸上&#xff0c;条形码就是下面的35165165qweqweqe序列号生成的&…

民大食堂用餐小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;商家管理&#xff0c;档口号管理&#xff0c;商家餐品管理&#xff0c;餐品种类管理&#xff0c;购物车管理&#xff0c;订单信息管理 微信端账号功能包括&#xff1a;系统首页&a…

pytorch-迁移学习

目录 1. 宝可梦数据集训练的问题2. 迁移学习3. 迁移学习实现4. 完整代码 1. 宝可梦数据集训练的问题 宝可梦数据总共有1000多张&#xff0c;对于resnet18网络来说数据量是不够的&#xff0c;训练时很容易出现过拟合&#xff0c;那么如何解决这个问题呢&#xff1f; 宝可梦数据…

常见的几种数据标注类型

数据标注是机器学习和人工智能项目中一个至关重要的步骤&#xff0c;它帮助算法理解输入数据中的关键特征。根据不同的应用场景和技术需求&#xff0c;数据标注可以分为多种类型。 以下是一些常见的数据标注类型&#xff1a; 图像标注&#xff1a; 边界框&#xff1a;在物体周…

手撕数据结构---栈和队列的概念以及实现

栈的概念&#xff1a; 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶&#xff0c;另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈…

Doris-计算特性

1 全新优化器 1.1 如何开启1.2 统计信息 1.2.1 使用ANALYZE语句手动收集1.2.1 自动收集1.2.3 作业管理1.3 会话变量及配置项调优参数2 Join相关 2.1 支持的Join算子2.2 支持的shuffle方式 2.2.1 Broadcast Join2.2.2 Shuffle Join2.2.3 Bucket Shuffle Join 2.2.3.1 原理2.2.3.…

【CTFWP】ctfshow-web40

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 题目介绍&#xff1a;题目分析&#xff1a;payload&#xff1a;payload解释&#xff1a;payload2&#xff1a;payload2解释&#xff1a;flag 题目介绍&#xff1a; …

python-分享篇-用Python分析文本数据的词频

上次批量提取了上市公司主要业务信息&#xff0c;要分析这些文本数据&#xff0c;就需要做文本词频分析。由于中文不同于英文&#xff0c;词是由一个一个汉字组成的&#xff0c;而英文的词与词之间本身就有空格&#xff0c;所以中文的分词需要单独的库才能够实现&#xff0c;常…

2024年必备技能:小红书笔记评论自动采集,零基础也能学会的方法

摘要&#xff1a; 面对信息爆炸的2024年&#xff0c;小红书作为热门社交平台&#xff0c;其笔记评论成为市场洞察的金矿。本文将手把手教你&#xff0c;即便编程零基础&#xff0c;也能轻松学会利用Python自动化采集小红书笔记评论&#xff0c;解锁营销新策略&#xff0c;提升…

pmp学习交流组队~

首先&#xff0c;来看看什么是PMP PMP指的是项目管理专业人士资格认证。它是由美国项目管理协会&#xff08;Project Management Institute(PMI)发起的&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试。 pmp备考攻略本人推荐的参考资料比较多&#xff0…

MySQL 9 安装第1辑-版本选择和安装包获取

一、MySQL 9 版本选择 在准备安装MySQL时&#xff0c;选择合适的版本和分发格式至关重要。首先&#xff0c;需要决定是安装长期支持&#xff08;LTS&#xff09;系列版本还是创新系列版本。长期支持版本&#xff08;如MySQL 8.x LTS&#xff09;专注于稳定性、性能优化和安全性…

RocketMQ知识总结(基本原理)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 基本原理 总体架构图 零拷贝 零拷贝技术是一个思想&#xff0c;指…

蓝屏事件一些想法

影响全球的蓝屏事件 2024年7月19日发生了大量windows操作系统电脑蓝屏的事情&#xff0c;造成了全球级别的影响。其中国外的影响最大&#xff0c;甚至像医院、银行、航班等与人民生活密切相关的行业都受到了本次影响。导致全球数千架次航班被取消&#xff0c;数万架次航班延误…

Java | Leetcode Java题解之第303题区域和检索-数组不可变

题目&#xff1a; 题解&#xff1a; class NumArray {int[] sums;public NumArray(int[] nums) {int n nums.length;sums new int[n 1];for (int i 0; i < n; i) {sums[i 1] sums[i] nums[i];}}public int sumRange(int i, int j) {return sums[j 1] - sums[i];} }…

【Web开发手礼】探索Web开发的秘密(十三)-Vue(3)好友列表、登录

前言 主要介绍了好友列表、登录界面所涉及的vue知识点&#xff01;&#xff01;&#xff01; 好友列表 从云端API读取数据信息 地址 https://app165.acapp.acwing.com.cn/myspace/userlist/方法&#xff1a;GET是否验证jwt&#xff1a;否输入参数&#xff1a;无返回结果&…

C++自定义接口类设计器

关键代码 #include "mainwindow.h" #include "ui_mainwindow.h" #include <QStringListModel>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);// C基础数据类型列表QStringList typ…

求.netcore 按模板导出pdf免费插件,来谈谈。

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…