UOJ 176 新年的繁荣

2023-11-25 05:59
文章标签 uoj 新年 繁荣 176

本文主要是介绍UOJ 176 新年的繁荣,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

挺妙的解法。

发现边权很小,我们可以考虑从大到小枚举边权来进行$kruskal$算法,这样子对于每一个边权$i$,我们只要枚举$0 \leq j < m$,找到一个点使它的点权为$i | 2^j$,尝试连边即可。

另外,如果同一个点权重复出现,一定有办法使这个边权连满,这样子直接累加到答案里就可以了。

时间复杂度$O(m * 2^m)$,再套一个并查集的复杂度。

Code:

#include <cstdio>
#include <cstring>
using namespace std;
typedef long long ll;const int N = 18;int n, m, a[1 << N], ufs[1 << N];
ll ans = 0LL;inline void read(int &X) {X = 0; char ch = 0; int op = 1;for(; ch > '9' || ch < '0'; ch = getchar())if(ch == '-') op = -1;for(; ch >= '0' && ch <= '9'; ch = getchar())X = (X << 3) + (X << 1) + ch - 48;X *= op; 
}inline int find(int x) {return ufs[x] == x ? x : ufs[x] = find(ufs[x]);
}inline bool merge(int x, int y) {int fx = find(x), fy = find(y);if(fx == fy) return 0;ufs[fx] = fy;return 1;
}int main() {
//    freopen("Sample.txt", "r", stdin);
    read(n), read(m);for(int x, i = 1; i <= n; i++) {read(x);if(a[x]) ans += 1LL * x;else a[x] = x;}for(int i = 1; i < (1 << m); i++) ufs[i] = i;for(int i = (1 << m) - 1; i >= 0; i--) {for(int j = 0; j < m && (!a[i]); j++)a[i] = a[i | (1 << j)];for(int j = 0; j < m; j++)if(a[i | (1 << j)] && merge(a[i], a[i | (1 << j)]))ans += 1LL * i;}printf("%lld\n", ans);return 0;
}
View Code

 

转载于:https://www.cnblogs.com/CzxingcHen/p/9836606.html

这篇关于UOJ 176 新年的繁荣的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423232

相关文章

(176)时序收敛--->(26)时序收敛二六

1 目录 (a)FPGA简介 (b)Verilog简介 (c)时钟简介 (d)时序收敛二六 (e)结束 1 FPGA简介 (a)FPGA(Field Programmable Gate Array)是在PAL (可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了

一副很好看很好看的新年手抄报

一副很好看很好看的新年手抄报 来自http://www.asscb.com/news/cjscb/20140103/1263.html

清华学者:知识图谱永远不会繁荣的五个原因

作者董胜王博士和朱宏寅博士详细分析了知识图谱(Knowledge Graph, KG)技术所面临的挑战,探讨了该技术在未来二十年内可能难以取得突破的原因。 实体难以泛化:实体的粒度和歧义问题是知识图谱的主要挑战之一。实体的定义往往缺乏明确的边界,且同一个实体可能在不同的场景中具有不同的含义。此外,知识图谱中使用的嵌入模型虽然在某些任务中表现出色,但并未解决实体泛化和歧义的问题,这导致了这些模型

cuda : 依赖: cuda-9-0 (= 9.0.176) 但是它将不会被安装 问题解决记录

cuda安装实际上多个版本和不同操作系统都做过多次,感觉也是很孰的样子。这次就了个棘手的问题,先放图:       我使用的是cuda官方安装教程,简单说就是将deb文件安装上,然后使用sudo apt-key add操作后apt update,接着一句命令就能安装cuda ,命令为sudo apt-get install cuda。这种方式是以前用过都没问题,这次却出现了上图的

deepin 加入甲辰计划,共建 RISC-V 繁荣生态

内容来源:deepin(深度)社区 今日,deepin(深度)社区宣布正式加入甲辰计划,致力于在下一个丙辰年(2036龙年)之前,基于RISC-V实现从数据中心到桌面办公、从移动穿戴到智能物联网全信息产业覆盖的开放标准体系及开源系统软件栈,使RISC-V软硬件生态达到作为主流指令集架构所需的生态成熟度。 deepin(深度)社区成立于2008年,在电脑操作系统开发领域经验沉

【报告分享】2020美好城市指数:短视频与城市繁荣关系白皮书(附下载)

今天给大家分享的是商派:2020美好城市指数:短视频与城市繁荣关系白皮书 2020美好城市指数:短视频与城市繁荣关系白皮书 2020年已走入下半程,城市空体空间消费亟待复苏与焕新。我们期待《美好城市指数:短视频与城市繁荣关系白皮书》为策略性打造美好城市提供灵感,实现线上传播反哺线下城市空间发展,同时带动更多抖音用户深入城市的街巷,实地体验城市的美好 以下是关于本篇报告的部分内容,由于篇幅有限

Leetcode:176. 第二高的薪水 超详细!!!

Employee 表: +-------------+------+| Column Name | Type |+-------------+------+| id | int || salary | int |+-------------+------+在 SQL 中,id 是这个表的主键。表的每一行包含员工的工资信息。 查询并返回 Emp

Java注解Annotation机制说明和基础使用(为什么Annotation直接促进了框架的繁荣发展?)

一、注解解决的问题【可忽略】 软件开发过程中,如何配置一直是一个重要的问题,对于一个框架,如果你不为它提供初始结构,它就无法理解你要做什么,自然无法工作。 1.问题:紧密贴合的代码和配置 在很久之前,开发者一般选择在代码段里,添加复杂的配置。 这样做,调试、管理就是麻烦的问题。 2.问题:配置文件使得代码结构松散 后来,发展出配置文件来存放配置信息,比如经典的XML、纯文本。 举个例子,

2014新年 新计划

2013浑浑噩噩的一年 不过也收获满满  从来不敢一个人的自己  学会了独立 学会了一个人上班 一个人吃饭 一个人睡觉 2014要更坚强  努力找到自己奋斗的方向 努力要拥有自己的房子 不仅要事业 也要爱情 相信面包和牛奶都会有的  相信我经营的 必会越来越好  2014该给自己一个实实在在的计划      1.学好英语口语,一年的时间可以给自己一口流利的英语      2.锻

2024-2025年跨境电商展览会计划表:共筑未来跨境行业的繁荣

-----------------------------2024年跨境电商展计划如下---------------------------- 2024年,2025年国内跨境电商行业将迎来一系列重大的展会活动,是企业展示品牌、交流趋势、拓展商机的重要平台。全国各地展会排期信息现已出炉,记得收藏哦!全国展位预订:陆经理 I38 I82I 9I72 可+V 【6月】 2024第七届616