首页 > 其他分享 >近现代 ABC&ARC 好题选做

近现代 ABC&ARC 好题选做

时间:2023-05-29 21:23:16浏览次数:41  
标签:__ ABC gnu int ND 好题 leq ARC nw

ARC161D

image

题意

定义一张简单无向图的 密度 为:\(\displaystyle M(G = \{V,E\}) = \frac{|E|}{|V|}\)。

给定 \(N,D\),任务是构造一张点数为 \(N\),边数为 \(ND\) 的简单无向图 \(G = (V, E)\),满足以下条件:

  • 对于 \(V\) 的每一个非空真子集 \(X\),满足 \(G\) 的关于 \(X\) 的导出子图的密度 严格小于 \(D\)。

导出子图:保留每一条 \(E\) 中两个顶点都属于 \(X\) 的边所形成的图。

若有解,输出方案。否则输出 No

题解

考虑尽可能的均匀度数,发现总度数为 \(2ND\),平均下来就是 \(\dfrac{2ND}{N} = 2D\)。

那么现在的问题就转化为:构造 \(ND\) 个二元组 \((A_1,B_1), (A_2,B_2), \dots, (A_{ND}, B_{ND})\),满足对于每一个 \(1 \leq i \leq ND\),满足 \(A_i < B_i\),并且对于每一对 \((i, j)(1 \leq i < j \leq ND)\) 满足 \((A_i,B_i) \neq (A_j,B_j)\)。并且对于每一个 \(k(1 \leq k \leq N)\),满足 \(\displaystyle \sum_{i = 1}^{ND} [A_i = k] + [B_i = k] = 2D\)。

考虑对于每一个点 \(i\),向前 \(D\) 个,后 \(D\) 个连边(如果中途没有再左的节点就是 \(N\),右边同理),发现会有 \(2ND\) 条边,我们发现会有一半重复的,因为要求的图是简单的,所以 \((u, v)\) 和 \((v, u)\) 都会在这 \(2ND\) 条边中。

所以最后的边数为 \(\dfrac{2ND}{2} = ND\),容易发现没有重边,且每一个点的度数为 \(2D\)。

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/hash_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 42
#endif
typedef long long ll;
typedef pair < int, int > PII;
typedef int itn;
mt19937 RND_MAKER (chrono :: steady_clock :: now ().time_since_epoch ().count ());
inline ll randomly (const ll l, const ll r) {return (RND_MAKER () ^ (1ull << 63)) % (r - l + 1) + l;}
#define rep(i, l, r) for(int i = l;i <= r; ++ i)
#define per(i, r, l) for(int i = r;i >= l; -- i)
//#define int long long
const double pi = acos (-1);
//__gnu_pbds :: tree < Key, Mapped, Cmp_Fn = std :: less < Key >, Tag = rb_tree_tag, Node_Upadte = null_tree_node_update, Allocator = std :: allocator < char > > ;
//__gnu_pbds :: tree < PPS, __gnu_pbds :: null_type, less < PPS >, __gnu_pbds :: rb_tree_tag, __gnu_pbds :: tree_order_statistics_node_update > tr;
inline int read () {
	int x = 0, f = 0;
	char c = getchar ();
	for ( ; c < '0' || c > '9' ; c = getchar ()) f |= (c == '-');
	for ( ; c >= '0' && c <= '9' ; c = getchar ()) x = (x << 1) + (x << 3) + (c & 15);
	return !f ? x : -x;
}
set < pair < int, int > > st;
inline void add_edge (int u, int v) {
	if (u > v) swap (u, v);
	st.insert (make_pair (u, v)); 
}
int n, d;
signed main () {
	n = read (), d = read ();
	if (2 * d + 1 > n) {
		printf ("No\n");
		return 0;
	}
	printf ("Yes\n");
	rep (i, 1, n) {
		int nw = i;
		rep (j, 1, d) {
			nw --;
			if (nw == 0) nw = n;
			add_edge (i, nw);
		}
		nw = i;
		rep (j, 1, d) {
			nw ++;
			if (nw == n + 1) nw = 1;
			add_edge (i, nw);
		}
	}
	for (pair < int, int > e : st) {
		printf ("%d %d\n", e.first, e.second);
	}
	return 0;
}

标签:__,ABC,gnu,int,ND,好题,leq,ARC,nw
From: https://www.cnblogs.com/RB16B/p/17441692.html

相关文章

  • 详解URL和URLSearchParams
    URL,称为统一资源定位器,指互联网上能找到资源定位的字符串。在一般语境中,又称网络地址或链接,当我们需要访问某个网页就需要输入对应的网址字符串,而这个网址就是URL。前端对于网址链接,提供了URL对象,可以用于创建或解析网址字符串信息;而Nodejs中也有相应模块来处理网址,同样支持URL类......
  • 图书机读目录MARC简介,ISO格式目录数据生成
    一、简介机读目录(Machine-ReadableCatalogue,MARC),是利用计算机读取和处理书目信息,是计算机编目的产品。它以代码形式和特定的结构将书目信息记录在计算机的存储载体上,能够被计算机识别并编辑输出书目信息。MARC起源于美国国会图书馆于1965年1月提出的“标准机器可读目录记录款......
  • [ARC158D] Equation
    ProblemStatementYouaregivenapositiveinteger$n$,andaprimenumber$p$atleast$5$.Findatripleofintegers$(x,y,z)$thatsatisfiesallofthefollowingconditions.$1\leqx<y<z\leqp-1$.$(x+y+z)(x^n+y^n+z^n)(x^{2n}+y^{2n}+z^{......
  • ABC 303
    祭奠一次烂掉的ABC。C怎么WA了?F怎么T了?F在kenkoooo上的评分怎么这么高?A点击查看代码#include<bits/stdc++.h>usingnamespacestd;#definede(x)cout<<#x<<"="<<x<<endlusingll=longlong;intmain(){ ios::sync_with_stdio(f......
  • Elasticsearch掰开揉碎第19篇京东商场之环境搭建
    引言从第1篇《开门见山》、第2篇《linux环境搭建》......不知不觉的,我已经写完了Elasticsearch掰开揉碎的18篇文章。其实到现在为止,只要是一直跟着我文章操作的兄弟,可以达到Elasticsearch初中级水平。高级水平还是达不到的,因为知识点太多太凌乱,根本无法实战应用到实际工作中。早些......
  • Elasticsearch掰开揉碎第20篇京东商场之前期准备
    引言上一篇主要讲解的是:京东商场之环境搭建(创建spring项目、设置项目JDK版本、设置项目的编译版本、设置项目的前端规范)本篇主要讲解的是:京东商场之前期准备(引入pom依赖、删除环境中无用的文件、修改资源配置文件、拷贝前端素材、创建测试controller、启动springboot项目、访问......
  • Elasticsearch掰开揉碎第21篇京东商场之爬取数据
    引言上一篇主要讲解的是:京东商场之前期准备(引入pom依赖、删除环境中无用的文件、修改资源配置文件、拷贝前端素材、创建测试controller、启动springboot项目、访问测试)本篇主要讲解的是:京东商场之爬取数据(京东商场搜索请求、HTML解析器之jsoup、编写html解析工具类、解析页面所......
  • Elasticsearch掰开揉碎第24篇京东商场之关键字高亮
    引言上一篇主要讲解的是:京东商场之前后端交互(修改index.html文件、编译项目、重新启动程序、index.html继续完善js代码、index.html遍历商品详细信息、访问测试)本篇主要讲解的是:京东商场之关键字高亮(编写service层代码、修改controller层代码、修改index.html文件、重新启动程序......
  • Elasticsearch掰开揉碎第13篇SpringData操作ES基础篇
    引言上一篇主要讲解的是:使用java操作Elasticsearchapi完成常用操作,比如:添加文档、查询文档数据、更新文档数据、删除文档数据、批量添加、批量更新、批量删除、查询指定索引中所有数据、匹配查询\分页查询\排序,匹配查询\高亮显示。本篇主要讲解的是:SpringData简介、一个完整的开发......
  • Elasticsearch掰开揉碎第17篇SpringBoot集成Elasticsearch之索引操作
    引言上一篇主要讲解的是:高亮显示、自定义高亮显示、通过html展示高亮效果。本篇主要讲解的是:创建SpringBoot项目、SpringBoot项目的配置修改、创建配置类、索引的API操作。创建spring项目双击IntelliJIDEA工具创建配置类编辑测试类1、创建索引运行测试类运行结果查看现有的索引可......