首页 > 其他分享 >CF527E Data Center Drama

CF527E Data Center Drama

时间:2023-12-20 15:23:39浏览次数:34  
标签:fir cnt vis CF527E Drama int add include Data

题意

给你一张无向图。

你可以添加若干条边,然后给所有边定向。

使得每一个点的出入度为偶数。

Sol

出入度为偶数,显然为欧拉环路的充要条件。

考虑对于所有原图度数为奇数的点两两相连。

如果不满足边数为偶数直接连自环即可。

跑一边欧拉环路,对于相邻两条边反向连就行了。

Code

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <array>
#include <vector>
#include <bitset>
using namespace std;
#ifdef ONLINE_JUDGE

#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
char buf[1 << 23], *p1 = buf, *p2= buf, ubuf[1 << 23], *u = ubuf;

#endif
int read() {
	int p = 0, flg = 1;
	char c = getchar();
	while (c < '0' || c > '9') {
		if (c == '-') flg = -1;
		c = getchar();
	}
	while (c >= '0' && c <= '9') {
		p = p * 10 + c - '0';
		c = getchar();
	}
	return p * flg;
}
void write(int x) {
	if (x < 0) {
		x = -x;
		putchar('-');
	}
	if (x > 9) {
		write(x / 10);
	}
	putchar(x % 10 + '0');
}
const int N = 2e5 + 5, M = 8e5 + 5;
array <int, N> deg;

namespace G {

array <int, N> fir;
array <int, M> nex, to;
int cnt = 1;
void add(int x, int y) {
	cnt++;
	nex[cnt] = fir[x];
	to[cnt] = y;
	fir[x] = cnt;
}

void _add(int x, int y) {
	deg[x]++, deg[y]++;
	add(x, y), add(y, x);
}

}

bitset <M> vis;
vector <int> isl;

int op = 1;

void dfs(int x) {
	for (int &i = G::fir[x]; i; i = G::nex[i]) {
		if (vis[i]) continue;
		vis[i] = vis[i ^ 1] = 1;
		int _x = x, _y = G::to[i];
		dfs(G::to[i]);
		if (op & 1) swap(_x, _y);
		write(_x), putchar(32);
		write(_y), puts("");
		op ^= 1;
	}
}

int main() {
	int n = read(), m = read();
	for (int i = 1; i <= m; i++)
		G::_add(read(), read());
	for (int i = 1; i <= n; i++) {
		if (!(deg[i] & 1)) continue;
		isl.push_back(i);
	}
	for (int i = 0; i < (int)isl.size(); i += 2)
		m++, G::_add(isl[i], isl[i + 1]);
	if (m & 1) m++, G::_add(1, 1);
	write(m), puts("");
	dfs(1);
	return 0;
}

标签:fir,cnt,vis,CF527E,Drama,int,add,include,Data
From: https://www.cnblogs.com/cxqghzj/p/17916577.html

相关文章

  • SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis
    ......
  • Databend 源码阅读: Meta-service 数据结构
    作者:张炎泼(XP)DatabendLabs成员,Databend分布式研发负责人https://github.com/drmingdrmer引言Databend是一款开源的云原生数据库,采用Rust语言开发,专为云原生数据仓库的需求而设计。面向云架构:Databend是完全面向云架构的数据库,可以在云环境中灵活部署和扩展简介|......
  • Databend 源码阅读: Meta-service 数据结构
    作者:张炎泼(XP)DatabendLabs成员,Databend分布式研发负责人https://github.com/drmingdrmer引言Databend是一款开源的云原生数据库,采用Rust语言开发,专为云原生数据仓库的需求而设计。面向云架构:Databend是完全面向云架构的数据库,可以在云环境中灵活部署和扩展简介|......
  • mysql-----------------------------------------------testdata
    6种SQL数据去重技巧大揭秘!原创 测试开发成长录 测试开发成长录 2023-12-1714:08 发表于广东你终于来了,戳蓝一键关注 测试开发成长录不负时光,遇见每一次成长   在上一期中,我们学习了SQL基本语法|查询语句的使用方法和技巧。接下来,我们将重点学习SQL中去重数据......
  • jq data方法
    data() 是jQuery的方法之一,用于在元素上存储和获取数据。它允许你将任意类型的数据附加到一个或多个元素上,并且可以通过选择器或元素对象来访问和操作这些数据。代码中,_t.selectBody.data('inside',_t.opts.inside) 的作用是将 _t.opts.inside 的值存储在 _t.selectBody......
  • LANDSAT LC08 C02 T1_L2 metadata dictory 元数据字典
    LANDSAT/LC08/C02/T1_L2metadatadictory元数据字典2023年12月20日星期三byxrkvarimage=ee.ImageCollection('LANDSAT/LC08/C02/T1_L2').first();print("image",image);vardic=image.toDictionary();print("dic",dic)ALGORITHM_SOURCE_SURFACE_REFLE......
  • MegEngine 优化 dataloader 使用体验!data monitor 帮助更好定位性能瓶颈
    业务模型训练中Data部分可能是瓶颈所在在训练业务模型过程中,如果我们发现模型的训练速度不符合预期,往往会下意识地认为网络本身出了问题。但实际上,大多数时候问题发生在模型的数据供给逻辑中。区分一个训练过程的瓶颈到底是在准备数据,还是在网络的计算阶段其实是很简单的。比......
  • NineData|《国产数据库共话未来趋势》技术沙龙
    12月16日周六下午,由NineData、PostgreSQL中文社区、PolarDB开源社区共同举办的《国产数据库共话未来趋势》技术沙龙,在NineData的报告厅成功举办。《国产数据库共话未来趋势》技术沙龙合影本次沙龙汇聚阿里云、玖章算术、百度云、飞轮科技、YMatrix、格睿科技、羲和Halo等众多......
  • Designated-Verifier Aggregate Signature Scheme With Sensitive Data Privacy Prote
    Abstract—AggregatesignaturesenablethesensornodesofIndustrialInternetofThingstosendtheirsignaturestotheaggregatortorealizesignaturecompression.Beforebeingstoredinthedatacenter,sensitivedataandnon-sensitivedatashouldadopt......
  • Databend 开源周报第 124 期
    Databend是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn。What'sOnInDatabend探索Databend本周新进展,遇到更贴近你心意的Databend。新增对Delta和Iceberg表引擎的支持Databend新增......