首先 \(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的更多相关文章

  1. 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 数据库 ...

  2. Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架

    Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...

  3. Windows 10 部署Enterprise Solution 5.5

    Windows 10正式版发布以后,新操作系统带来了许多的变化.现在新购买的电脑安装的系统应该是Windows 10.与当初用户不习惯Windows 7,购买新电脑后第一个想做的事情就是重装成XP,估 ...

  4. Enterprise Solution 企业资源计划管理软件 C/S架构,支持64位系统,企业全面应用集成,制造业信息化

    Enterprise Solution是一套完整的企业资源计划系统,功能符合众多制造业客户要求.系统以.NET Framework技术作为开发架构,完善的功能可有效地帮助企业进行运营策划,减低成本,如 ...

  5. Dynamics CRM 2015-超大Solution导入问题

    我们在将比较大的solution导入CRM的时候,经常会遇到超时的问题,这是因为CRM的本身的优化限制导致的,那么如何解决呢? 官方已经有了解决方案了. 在浏览完两种解决方法之后,我们要知道的是: 1 ...

  6. WATERHAMMER: A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION

    开启阅读模式 WATERHAMMER A COMPLEX PHENOMENON WITH A SIMPLE SOLUTION Waterhammer is an impact load that is ...

  7. Codility NumberSolitaire Solution

    1.题目: A game for one player is played on a board consisting of N consecutive squares, numbered from ...

  8. codility flags solution

    How to solve this HARD issue 1. Problem: A non-empty zero-indexed array A consisting of N integers i ...

  9. 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 ...

  10. 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 ...

随机推荐

  1. vue实现图片上传且实时预览

    <div class="up-img"> <div class="imgList"> <ul> <li v-for=& ...

  2. 30分钟熟练使用最常用的ES6,还不学是等着被卷死?

    一. 关于ES6 了解一门技术或者语言,最好的方法就是知道它能做些什么 ES6 , 它是由 ECMA 国际标准化组织,制定的一项脚本语言的标准化规范 那么它为什么会出现呢? 每一次标准的诞生都意味着语 ...

  3. 使用python往已有内容的PDF文件写入数据

    只使用reportlab库好像没法在已经有内容的PDF页面中写入数据,只能生成一个空的PDF文件再写入.所以这里我是配合pdfrw库来实现的.具体见示例 from reportlab.pdfgen.c ...

  4. 苹果App 上架 app store 提示 “一张或多张屏幕快照的尺寸存在错误“

    获取预览图的方式有两种:第一种是用真机运行然后截图获取:另一种是用模拟器运行然后截图获取. 先说说第一种获取方式:app运行在5.5英寸(6+)的手机上,截取屏幕快照.在上传时会报错:"一张 ...

  5. 074_Wrapper_Class

    https://developer.salesforce.com/page/Wrapper_Class http://www.sfdcpoint.com/salesforce/wrapper-clas ...

  6. c# message (转)

    一.消息概述 Windows下应用程序的执行是通过消息驱动的.消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理. 什么是消息(Message) 消息就是通知和命令. ...

  7. vs 工具 dumpbin & corflags

    dumpbin 查看 dll 接口函数 > dumpbin /exports "/path/to/dll" dumpbin 查看 exe.dll 依赖的动态库 > du ...

  8. 一、100ASK_IMX6ULL嵌入式裸板学习_LED实验(知识点补充)

    知识点补充: Linux进程中的五个段 BSS段(Block Started bySymbol,意为"以符号开始的块"):   BSS,是Unix链接器产生的未初始化数据段.通常是 ...

  9. BLOG-2

    前言 这几次的PTA作业和考试涉及到的知识点有面向对象中对数据的封装,还有继承和多态,还有抽象类和对象容器 也涉及到了一些,同时还有关于正则表达式的一些内容.而关于题量,这应该对于一个初学者来说是一个 ...

  10. appium遇到的问题

    问题1:权限问题:java.lang.SecurityException: Injecting to another application requires INJECT_EV ENTS permi ...