
Codeforces Round #700 (Div. 1) C. Continuous City 构造 + 二进制
发布日期:2021-05-07 18:32:49
浏览次数:25
分类:精选文章
本文共 2942 字,大约阅读时间需要 9 分钟。
文章目录
题意:
构造一个图,使其从 1 1 1到 n n n的路径的长度与 [ L , R ] [L,R] [L,R]中某个值一一对应,不能有两条路径长度一样,且每个值都必须出现一次,每两个点之间只能连一条边。
n ≤ 32 n\le32 n≤32, a i , b i ≤ n a_i,b_i\le n ai,bi≤n, 1 ≤ c i ≤ 1 e 6 1\le c_i\le 1e6 1≤ci≤1e6。思路:
看到 n ≤ 32 n\le 32 n≤32,不难想到二进制拆分,我们分情况来讨论。
( 1 ) L = 1 , R = 2 k (1)\ \ L=1,R=2^k (1) L=1,R=2k 对于这种情况,我们需要拿出来 k + 2 k+2 k+2个点,从 1 1 1向 [ 2 , k + 2 ] [2,k+2] [2,k+2]的点连边权为 1 1 1的边,让后对于后面的每一个位置 i i i,都向后连边权为 2 i − 2 2^{i-2} 2i−2的边,这样就可以构造出 [ 1 , 2 k ] [1,2^k] [1,2k]内的边权了。 ( 2 ) L = 1 , R > 1 (2)\ \ L=1,R>1 (2) L=1,R>1 对于这种情况,我们依旧按照 ( 1 ) (1) (1)的思路构造出 [ 1 , 2 k ] [1,2^k] [1,2k]的边权,让后再新加一个点 k + 3 k+3 k+3,考虑用新的点来构造出来 [ 2 k + 1 , R ] [2^k+1,R] [2k+1,R]的边权。 对于 R R R,他的二进制形式大概是这样的 100100100... 100100100... 100100100...,很明显,我们可以根据 1 1 1来分段,因为我们已经构造出来了 [ 1 , 2 i ] [1,2^i] [1,2i],即 [ 1 , 1000.. ] [1,1000..] [1,1000..],假设 R R R的从低位到高位的第 i i i位(从 0 0 0开始)是 1 1 1,那么我们只需要从 i + 2 i+2 i+2的位置向 k + 3 k+3 k+3连一个 R R R将 i i i位及其之后的数都变成 0 0 0的边权,但是这样会有点问题,就是因为构造的是 [ 1 , 2 i ] [1,2^i] [1,2i],缺少 0 0 0,那么连完之后也就缺少后面全 0 0 0的边权。所以我们考虑将 R − 1 R-1 R−1之后建边,在新边的边权都 + 1 +1 +1即可。 ( 3 ) L > 1 , R > 1 (3)\ \ L>1,R>1 (3) L>1,R>1 只需要在最后新加一个点,在原来的最后一个点向他连 l − 1 l-1 l−1的边即可,转化成情况 ( 1 ) (1) (1)或 ( 2 ) (2) (2)。//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math")//#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native")//#pragma GCC optimize(2)#include#include #include #include #include
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月06日 00时50分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
[Python学习笔记]组织文件
2021-05-09
基于Redo Log和Undo Log的MySQL崩溃恢复流程
2021-05-09
从RocketMQ的Broker源码层面验证一下这两个点
2021-05-09
如何正确的在项目中接入微信JS-SDK
2021-05-09
纵览全局的框框——智慧搜索
2021-05-09
快服务流量之争:如何在快服务中占领一席之地
2021-05-09
【活动】直播揭秘<如何从0开发HarmonyOS硬件>
2021-05-09
Unity平台 | 快速集成华为性能管理服务
2021-05-09
对模拟器虚假设备识别能力提升15%!每日清理大师App集成系统完整性检测
2021-05-09
使用Power BI构建数据仓库与BI方案
2021-05-09
Django认证系统并不鸡肋反而很重要
2021-05-09
快用Django REST framework写写API吧
2021-05-09
tep用户手册帮你从unittest过渡到pytest
2021-05-09
12张图打开JMeter体系结构全局视角
2021-05-09
Spring Boot 2.x基础教程:构建RESTful API与单元测试
2021-05-09
[UWP 自定义控件]了解模板化控件(1):基础知识
2021-05-09
UWP 自定义控件:了解模板化控件 系列文章
2021-05-09
[UWP]从头开始创建并发布一个番茄钟
2021-05-09
WinUI 3 Preview 3 发布了,再一次试试它的性能
2021-05-09
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
2021-05-09