首先 \(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. CF生化全模式全装备单机版安装教程(基于CSOL)

    喜欢玩CF单机版的朋友平时应该接触过一些基于CS1.6的单机版,但是这种版本有些特性就是:改了分辨率就容易进不去游戏:变为幽灵时被枪射击时会出现视角乱晃的情况:游戏过程中场景宏大变数多时容易突然退出回 ...

  2. 关闭Mac的Microsoft AutoUpdate弹框提示

    macOS安装Microsoft Office for Mac之后,有时候会弹出Microsoft Auto Update微软应用自动更新工具.就像下面这样:(我不知道您会不会烦,我是烦了)如果您也和 ...

  3. CentOS7.6下安装MySql和Redis

    安装的MySQL为5.7版本1.下载安装官方的Yum Repository [root@localhost ~]# wget http://dev.mysql.com/get/mysql57-comm ...

  4. kubernetes 集群部署问题点统计

    1.安装网络插件报错 error unable to recognize "calico.yaml": no matches for kind "DaemonSet&qu ...

  5. Ubuntu系统添加新的普通用户

    1.创建一个新的普通用户 创建了可以登录的yang用户并使用/bin/bash作为shell. 设置密码. 为yang用户增加管理员权限. 切换登录用户为yang. sudo useradd -m y ...

  6. Unity简单使用 Addressables远端打包流程

    跟着一步步操作即可 1.先打开一个unity项目 2.导入插件资源包地址,点击如图片所示 3.最后点击导入就行了也就是第三步 Install 4.这是在点击 Window 安装后Window/多了一个 ...

  7. 使用Promethues和Grafana监控Flink

    之前使用Influxdb储存Metrics经常会出现数据写不进去的问题,当Influxdb重启之后又能写进去,遂将数据存储部分换成Promethues,因为Flink采用PutGateway的方式,需 ...

  8. docker-compose重新启动单个容器

    这很简单:使用命令: docker-compose restart worker 您可以设置在杀死容器之前等待停止的时间(以秒为单位) docker-compose restart -t 30 wor ...

  9. Java基础学习:5、递归

    1.递归:就是方法自己调用自己. public class Test01 { public void test(int n) { if (n > 2) { test(n -1); } Syste ...

  10. 关于jsp 中数字格式化<fmt:formatNumber>标签的用法

    刚刚一个我负责的网站,出现了一个bug ,在之前没有遇到过,而且生产环境运行了4/5年了也没有发生该问题,今天发生了.所以查了一下<fmt:formatNumber>标签的用法,自己记录一 ...