CF1773J-King‘s Puzzle【构造】

这篇具有很好参考价值的文章主要介绍了CF1773J-King‘s Puzzle【构造】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

正题

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


题目大意

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

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

1 ≤ k ≤ n ≤ 500 1\leq k\leq n\leq 500 1kn500


解题思路

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

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

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

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

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

时间复杂度: O ( k 2 + n ) O(k^2+n) O(k2+n)文章来源地址https://www.toymoban.com/news/detail-497598.html


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;
}

到了这里,关于CF1773J-King‘s Puzzle【构造】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 网络原理 - HTTP / HTTPS(4)——构造http请求

    网络原理 - HTTP / HTTPS(4)——构造http请求

    目录 一、postman 的下载安装以及简单介绍 1、下载安装 2、postman的介绍 二、通过 Java socket 构造 HTTP 请求         构造http请求的方式有两种: (1)通过代码构造 (有一点难度)        (2)通过第三方工具构造 (非常容易)。         下面介绍第三方工具构造http请求,这

    2024年04月17日
    浏览(14)
  • 【JavaEE初阶】HTTP请求的构造及HTTPS

    【JavaEE初阶】HTTP请求的构造及HTTPS

    常见的构造HTTP 请求的方式有以下几种: 直接通过浏览器地址栏, 输入一个 URL 就可以构造出一个 GET 请求. 直接点击收藏夹, 得到的也是 GET 请求. HTML 中的一些特殊标签也会触发 GET 请求, 如: link, script, img, a… 还可以通过 form 表单标签来实现 GET/POST 请求的构造. 通过 JS 中的 aj

    2024年02月15日
    浏览(14)
  • 【Java EE】-HTTP请求构造以及HTTPS的加密流程

    【Java EE】-HTTP请求构造以及HTTPS的加密流程

    作者 :学Java的冬瓜 博客主页 :☀冬瓜的主页🌙 专栏 :【JavaEE】 分享 : 在满园弥漫的沉静的光芒之前,一个人更容易看到时间,并看到自己的身影。——史铁生《我与地坛》 主要内容 :构造http请求,不需要写代码直接发送http请求:地址栏输入地址,html中 img标签,scri

    2024年02月02日
    浏览(14)
  • 前端高频面试题汇总正题+(附答案解析)

    前端高频面试题汇总正题+(附答案解析)

    正题 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 解析 第1题解析 View Code 第2题解析 View Code 第3题解析 View Code 第4题解析 View Code 第5题解析 View Code 第6题解析 View Code 举例: View Code 第7题解析 View Code 举例: View Code 第8题解析 View Code 第9题解析 View Code 第10题解析 View Code   鉴定完毕,

    2024年02月08日
    浏览(10)
  • 支付宝小程序 生成https链接 生成alipays协议链接

    支付宝小程序 生成https链接 生成alipays协议链接

    业务场景介绍: H5移动端支持微信支付 [ 微信支付分为微信内支付(JSAPI支付官方API)和微信外支付(H5支付官方API)] 支付宝支付 [手机网站支付转 APP 支付 官方API ] 订单生成逻辑:前端请求后端提交订单,后端去和微信或者支付宝对接生成订单(后续支付都是这个逻辑进行

    2024年02月08日
    浏览(8)
  • 长春理工大学第六届CTF网络攻防大赛题解(文末有题目下载链接)

    长春理工大学第六届CTF网络攻防大赛题解(文末有题目下载链接)

    此题解仅为部分题解,包括: 【RE】:①Reverse_Checkin ②SimplePE ③EzGame 【Web】①f12 ②ezrunner 【Crypto】①MD5 ②password ③看我回旋踢 ④摩丝 【Misc】①爆爆爆爆 ②凯撒大帝的三个秘密 ③你才是职业选手 ① Reverse Checkin: 双击文件看到如上提示:“也许你能从字符串里找到什么”

    2024年02月05日
    浏览(10)
  • java访问https链接下载图片

    // 文件下载存储路径 String savePath = “D:/zhxcmfs/myFiles”; // 文件命名 String fileName = “图片.png”; // https文件下载链接 String apiHttp = “https://gimg2.baidu.com/image_search/src=http%3A%2F%2Flmg.jj20.com%2Fup%2Fallimg%2F1114%2F040221103339%2F210402103339-8-1200.jpgrefer=http%3A%2F%2Flmg.jj20.comapp=2002size=f9999,10000q=a80n

    2023年04月08日
    浏览(11)
  • https域名下 请求http图片链接 被自动变成https请求

    https域名下 请求http图片链接 被自动变成https请求

    现象 在以 https 协议页面,以 img src=\\\"http://baidu.com/img/image.png\\\" 方式请求资源时,http 协议的资源地址被转为 https 的。 溯源检查过程 这个问题真的是第一次遇到,本地开发时没发现问题,等到上到测试环境时发现有些图片无法显示。 检查发现 域名用的是https,图片来源有两种

    2024年02月07日
    浏览(13)
  • burp抓包https链接不安全解决方法

    burp抓包https链接不安全解决方法

    在浏览器已经导入 Burpsuite 的证书之后,抓包,浏览器仍然显示 抓取https包提示不是私密链接 解决方法 适用于没有继续访问的按钮。 浏览器输入 chrome://flags 搜索 翻译过来就是 允许从本地主机加载资源的证书无效。 并设置为 Enabled 在出现不是私密链接的页面直接 输入 thisisun

    2024年02月16日
    浏览(9)
  • A卡安装stable diffusion,不废话,直接迈入正题!

    A卡安装stable diffusion,不废话,直接迈入正题!

    在网上看了很多关于A卡安装stable diffusion的方法,用了2天终于安装好了。给大家分享一下安装步骤,希望后面的小伙伴少踩点坑。 先说我的配置 系统 win10 CPU AMD3600 显卡 AMD5700XT ** ** 1、python 3.10.6 (A卡必须要下载这个版本,不然会出现很多玄学问题) 安装网址https://www.pytho

    2024年02月03日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包