首页 > 其他分享 >CF1773J-King‘s Puzzle【构造】

CF1773J-King‘s Puzzle【构造】

时间:2023-06-23 21:24:01浏览次数:46  
标签:度数 King ... Puzzle 构造 leq CF1773J include

正题

题目链接:https://codeforces.com/contest/1773/problem/K


题目大意

要求构造一张 \(n\) 个点的无向图满足。

  • 不存在重边和自环,且图连通
  • 所有点的度数恰好有 \(k\) 个不同的值

\(1\leq k\leq n\leq 500\)


解题思路

非常好构造,爱来自复建人

考虑构造 \(k=n-1\) 的情况,理论上如果这种情况可行,且存在度数为 \(1\) 的点,那么我们可以考虑先构造 \(n=k+1\) 个点,把剩下的点连在度数最大的点上。

接下来考虑如何构造 \(k=n-1\) 且存在度数为 \(1\) 的点。我们尝试手玩一下,因为要联通我们直接先拉一条链,此时的度数是 \(1,2,2...,2,1\)

然后我们保留一个度数为 \(1\) 的点,然后让第二个点对其他所有点连边,那么此时链上的度数就为 \(1,n-1,2,3,...,3,3,2\)

会发现后面有一段 \(2,3,3,...,3,3,2\) 的点,也就是变成了一个 \(n=n-2\)的子问题,重复上述过程就好了。

时间复杂度:\(O(k^2+n)\)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#define mp(x,y) make_pair(x,y)
using namespace std;
int n,k;
vector<pair<int,int> >e;
void solve(int n){
	if(n<=3)return;
	for(int i=1;i<n-2;i++)
		e.push_back(mp(i,n-1));
	solve(n-2);
}
int main()
{
	scanf("%d%d",&n,&k);
	if(n==1){puts("YES");puts("0");return 0;} 
	if(k==n){puts("NO");return 0;}
	if(k==1){
		puts("YES");
		for(int i=1;i<n;i++)e.push_back(mp(i,i+1));
		if(n!=2)e.push_back(mp(1,n));
		printf("%d\n",e.size());
		for(int i=0;i<e.size();i++)
			printf("%d %d\n",e[i].first,e[i].second);
		return 0;
	}
	puts("YES");k++;
	for(int i=1;i<k;i++)e.push_back(mp(i,i+1));
	solve(k);
	for(int i=k+1;i<=n;i++)e.push_back(mp(k-1,i));
	printf("%d\n",e.size());
	for(int i=0;i<e.size();i++)
		printf("%d %d\n",e[i].first,e[i].second);
	return 0;
}

标签:度数,King,...,Puzzle,构造,leq,CF1773J,include
From: https://www.cnblogs.com/QuantAsk/p/17500190.html

相关文章

  • -- Checking for curses support - Failed
     001、问题--Checkingforcursessupport-Failed 002、解决方法[[email protected]]#yum-yinstallncurses-devel 003、再次编译(解决curses报错)[[email protected]]#./configure。  ......
  • 分布式链路追踪Skywalking
    简介skywalkings是2015年开源的一款国产框架,2017年的时候加入了Apache孵化器。skywalking是分布式应用程序的性能监控工具,具有多种监控手段,作为APM工具,它具有分布式追踪、性能指标分析、应用和服务依赖分析等功能。可以通过语言探针来获取监控数据。专门是为了微服务(springc......
  • CF1746E Joking
    CF1746EJoking交互库最开始给定一个正整数\(n\),并生成一个\(x\in[1,n]\),你的目标是得到交互库中的\(x\)。你可以向交互库提出问题:提问一个集合\(S\),交互库回答的内容是\(x\inS\)的真假。该提问次数不能超过限制数\(Q\)。交互库可以骗人,也即交互库的回答不一定正......
  • kingbase-运维管理
    1、会话管理查看当前连接会话信息selectdatname,pid,usename,client_addr,backend_start,state,queryfromsys_stat_activity;中止会话,并断开和服务端的连接selectsys_terminate_backend(42953);取消会话执行的SQL语句selectsys_cancel_backend(43134);......
  • kingpin 包
    概述大体上与flag包相同,flag包使用支持非标识符的传参方法清单输出信息kingpin.Version():输出版本信息kingpin.FatalIfError():如果有报错,打印错误信息,并退出kingpin.Fatalf():打印错误信息,并退出kingpin.Errorf():打印错误信息,不退出kingpin.FatalUsa......
  • doris 报错: Insert has filtered data in strict mode, tracking url=
    最近使用doris插入数据时,报了如下错误: Inserthasfiltereddatainstrictmode,trackingurl=点击trackingurl的连接地址,可以查看报错具体详情我的程序报错时因为插入的数据长度超过字段长度,所以需要修改对应字段长度。通过命令进行修改即可ALTERTABLEmy_tableMODI......
  • SNN-RAT: Robustness-enhanced Spiking Neural Network through Regularized Adversar
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!同大组工作 Abstract ......
  • You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd"
    Thefastnetworkdevicedriver(vmxnetmodule)isusedonlyforourfast networkinginterface.TherestofthesoftwareprovidedbyVMwareToolsis designedtoworkindependentlyofthisfeature.Ifyouwishtohavethefastnetworkdriverenabled,you......
  • 融合模型stacking14条经验总结和5个成功案例(互联网最全,硬核收藏)_机器学习_人工智能_
    来自Toby老师,《融合模型stacking14条经验总结和5个成功案例》我也看了很多关于融合模型stacking文章,很多作者倾向于赞美融合模型stacking,对其缺点轻描淡写,这容易误导初学者。一叶障目就是这意思。我的很多学员喜欢用融合模型作为论文或专利创新点,这是一个热门技术。最近有个同学在......
  • KingbaseES数据库分区表添加主键与索引的建议
    一、初始化测试环境#数据库版本信息KingbaseESV008R006C007B0012onx86_64-pc-linux-gnu,compiledbygcc(GCC)4.1.220080704(RedHat4.1.2-46),64-bit1.创建分区表:createtabletb(idbigint,statdate,nobigint,pdatedate,infovarchar2(50))partitionbyra......