Solution - ARC152D Halftree
首先 \(n\) 为偶数时无解,这是显然的,因为一次加两条边,总边数一定是偶数。
下面我们证明 \(n\) 为奇数时一定有解,直接进行构造。
首先将每一个点编号加上 \(k\) 再模 \(n\) 的答案求出,将其两两连边可以得到 \(\gcd(n,k)\) 个置换环,设这个值是 \(d\),每个环内部的大小相等,为 \(\frac n d\),我们钦定每个置换环中的最小的数位第一个,下面是 \(n=15\),\(k=6\) 的情况,其中每一行表示一个置换环:
0,6,12,3, 9
1,7,13,4,10
2,8,14,5,11
下文用 \(a_{i,j}\) 表示上述表格中第 \(i\) 行第 \(j\) 列的元素。
首先我们先将前 \(\frac n d-1\) 列连成一个连通块,具体地我们构造 \((a_{1,i},a_{2,i}),(a_{2,i},a_{3,i})\ldots,(a_{d-1,i},a_{d,i})\),其中 \(i\) 是奇数即可。
接下来我们将前 \(\frac n d -1\) 个连通块连通,要想做到这一点我们会同时将最后一列的某一个元素连通,具体地我们构造 \((a_{1,1},a_{1,2}),(a_{1,3},a_{1,4}),\ldots,(a_{1,n/d-2},a_{1,n/d-1})\) 即可。
最后一步,我们需要将最后一列的 \(d-1\) 个孤点连通,具体地我们构造 \((a_{2,n/d},a_{3,n/d-1}),(a_{4,n/d},a_{5,n/d-1}),\ldots,(a_{d-1,n/d},a_{d,n/d-1})\) 即可。
总时间复杂度线性。
Solution - ARC152D Halftree的更多相关文章
- Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms
行业:基于数据库的制造行业管理软件,包含ERP.MRP.CRM.MIS.MES等企业管理软件 数据库平台:SQL Server 2005或以上 系统架构:C/S 开发技术 序号 领域 技术 1 数据库 ...
- Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架
Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...
- Windows 10 部署Enterprise Solution 5.5
Windows 10正式版发布以后,新操作系统带来了许多的变化.现在新购买的电脑安装的系统应该是Windows 10.与当初用户不习惯Windows 7,购买新电脑后第一个想做的事情就是重装成XP,估 ...
- Enterprise Solution 企业资源计划管理软件 C/S架构,支持64位系统,企业全面应用集成,制造业信息化
Enterprise Solution是一套完整的企业资源计划系统,功能符合众多制造业客户要求.系统以.NET Framework技术作为开发架构,完善的功能可有效地帮助企业进行运营策划,减低成本,如 ...
- Dynamics CRM 2015-超大Solution导入问题
我们在将比较大的solution导入CRM的时候,经常会遇到超时的问题,这是因为CRM的本身的优化限制导致的,那么如何解决呢? 官方已经有了解决方案了. 在浏览完两种解决方法之后,我们要知道的是: 1 ...
- WATERHAMMER: A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION
开启阅读模式 WATERHAMMER A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION Waterhammer is an impact load that is ...
- Codility NumberSolitaire Solution
1.题目: A game for one player is played on a board consisting of N consecutive squares, numbered from ...
- codility flags solution
How to solve this HARD issue 1. Problem: A non-empty zero-indexed array A consisting of N integers i ...
- The Solution of UESTC 2016 Summer Training #1 Div.2 Problem C
Link http://acm.hust.edu.cn/vjudge/contest/121539#problem/C Description standard input/output After ...
- The Solution of UESTC 2016 Summer Training #1 Div.2 Problem B
Link http://acm.hust.edu.cn/vjudge/contest/121539#problem/B Description standard input/output Althou ...
随机推荐
- 浅谈storm
storm分布式,可容错的实时计算框架,低延迟能做到毫秒级的响应,storm进程是常驻内存,Hadoop是不断启停的,storm中的数据不经过磁盘,都在内存中,处理完成后就没有了,但是可以写到数据库中 ...
- 狄利克雷过程(Dirichlet Process)
先从狄利克雷过程的motivation开始说起,如果我们有一些数据,这些数据是从几个高斯分布中得出的,也就是混合高斯模型中得出的,比如下图这样 但是呢,我们并不知道混合高斯模型中到底有多少个高斯分布, ...
- ubuntu下安装使用jupyter
sudo snap install jupyter安装,jupyter notebook使用,到浏览器访问服务URL这种使用方式不再赘述. 如何在服务端开启jupyter服务供客户端使用有待研究. 本 ...
- HTTP头注入:XFF注入
0x00:XFF是什么? X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,(通常一些网站的防注入功能会记录请求端真实IP地址并写入数据库or某文件[通过修 ...
- 修改docker0 中的inet
由于在服务器使用默认的172开头的ip,可能会跟别人的产生冲突,则就需要重新配置ip 1.创建daemon.json vi /etc/docker/daemon.json (不能打空格:用tab缩进) ...
- JAVA笔记_方法递归调用
方法递归调用 简单地说递归调用就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂问题,同时可以让代码变得更加简洁. 递归调用执行机制案例1: /** * @ClassName ...
- Python_基础_Print_转义字符和原字符
转义字符和原字符 print('hello\nworld') #转义功能的首字母 n-->newline的首字母表示换行 print('hello\tworld') #\t即表示一个制表位 pr ...
- 使用Mybatis plus xml 记录过程
<select id="selectByConditions" resultType="com.springboot.domain.DemoQueryModel&q ...
- 【PDF】日本流行文化中的中国经典巨著:《三国志》与《三国演义》 | 陈曦子 |
书本详情 标题:日本流行文化中的中国经典巨著:<三国志>与<三国演义> | 陈曦子 |年份:2019出版社:暨南大学出版社ISBN10:7566828355ISBN13:978 ...
- openGL 学习笔记 (一) 了解 OpenGL,创建第一个OpenGL窗口
// 序章最开始我以为OpenGL是一系列的API,他给出了一系列对计算机图像的操作接口.但其实OpenGL其实并不是一个API,他是由khronos组织制定并维护的规范. 早期的OpenGL使用立即 ...