P13617 [ICPC 2024 APC] Bit Counting Sequence

news/2025/9/23 21:18:12/文章来源:https://www.cnblogs.com/CuteNess/p/19108101

P13617 [ICPC 2024 APC] Bit Counting Sequence


对于一个非负整数 \(x\),令 \(p(x)\)\(x\) 的二进制表示中 1 的个数。例如,\(p(26)=3\),因为 \(26=(11010)_2\)

给定长为 \(n\) 的整数序列 \((a_1, a_2, ..., a_n)\),判断是否存在一个非负整数 \(x\),使得序列 \((p(x), p(x+1), ..., p(x+n-1))\)\((a_1, a_2, ..., a_n)\) 相等。此外,如果存在,你需要计算满足条件的最小的 \(x\)


假设整个序列里面的最小值 \(\ge 2\),那么我们会发现解 \(x_0\) 的最高位始终没有变过,否则变化的时刻 \(a_t\) 应为 \(1\)

所以我们可以去掉 \(x_0\) 的最高位然后考虑剩下的子问题。

重复这个过程相当于整体减 \(1\) 直到整个序列的最小值为 \(1\)

又因为 \(1\) 所在位置必然是 \(2\) 的整数次幂,只有 \(\mathcal O(\log)\) 种取值,暴力 check 即可!


感谢 @wing_heart ,她的思路给了我很大启发!

#include <algorithm>
#include <iostream>int n, v[500007];
#define p(x) (1ll<<(x))inline void solve() {std::cin >> n;auto check = [](auto&& beg) {for(int i = 0; i < n; ++i)if(v[i] != __builtin_popcountll(i + beg))return 0;return 1;};int min = 100, post = -1;for(int i = 0; i < n; ++i) {	std::cin >> v[i];if(v[i] <= min) min = v[i], post = i;}if(min == 0) {std::cout << (check(0) ? "0\n" : "-1\n");return ;}--min; for(int i = 0; i < n; ++i) v[i] -= min;for(int i = 0; i <= 60; ++i)if(p(i) >= post && check(p(i) - post))return std::cout << (p(i) - post + p(i + min + 1) - p(i + 1)) << "\n", void();std::cout << "-1\n";
}int main() {std::ios::sync_with_stdio(0), std::cin.tie(0), std::cout.tie(0);int t; std::cin >> t; for(; t--; ) solve();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

成都捕鱼网站建设做设计需要知道的几个网站

【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码 1 题目 题目 D 题 圈养湖羊的空间利用率 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养&#xff0c;适应不同种类、不同阶段的牲畜对空间的不同要求&#xff0c;以保障牲畜安全和健康&a…

网页模板素材网站最新网球赛事新闻

烛秋 http://www.cnblogs.com/cswuyg/archive/2011/09/30/dll.html 动态链接库的使用有两种方式&#xff0c;一种是显式调用。一种是隐式调用。 &#xff08;1&#xff09; 显式调用&#xff1a;使用LoadLibrary载入动态链接库、使用GetProcAddress获取某函数地址。 &am…

如何修改网站底部重庆点优定制网站建设

文章目录 语法使用举例 $millisecond聚合运算符返回日期中毫秒部分的数字值为0到999之间 语法 { $millisecond: <dateExpression> }参数说明&#xff1a; <dateExpression>为可解析为Date、Timestamp或ObjectID或者参数也可以是一个文档&#xff1a; { date: &l…

淘宝网站模板是什么做的html中文网

dockerfiletodo item基础命令编写dockefiel基于centos镜像制作tomcatjdk的镜像todo item 是用来构建docker镜像的脚本&#xff1b;命令参数脚本。构建步骤:1、编写一个dockerfile文件2、 docker build 构建为一个镜像3、docker run 运行镜像4、docker push 发布镜像(dockerhub…

网站建设进度总结网站设为主页功能怎么做

前端技术知识&#xff08;含八股&#xff09;总结 - 持续更新中 参考文献1.HTML和CSS1.1 语义化标签1.2 CSS 选择器及优先级 / position 定位 / box-sizing 属性 / transition / 继承属性&#xff08;如字体文字类的属性大部分有继承&#xff09;/ 行内元素和块级元素 / html的…

装饰公司为什么做网站怎么区别网站开发语言

可以按这样的方式来存放 长度A 长度A 用于调整Short JMP 用于存放一些信息 |调整后的原HOOK代码 |原始代码(HOOK) |临时LONG JMP区| 信息区| 1). 调整…

上海网站制作怎么选怎么做学校官方网站

雪花算法学习笔记 来源 https://pdai.tech/md/algorithm/alg-domain-id-snowflake.html概述 雪花算法是推特开源的分布式ID生成算法&#xff0c;以划分命名空间的方式将64位分割成多个部分&#xff0c;每一个部分代表不同的含义&#xff0c;这种就是将64位划分成不同的段&…

建设租房子的网站住房和城乡建设部资质延期

声明 该图并非原创&#xff0c;原文出处不可考&#xff0c;因此在这里附加说明。 示意图

网站栏目规划叫什么软件论坛网站有哪些

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 数据库管理系统&#xff08;英语&#xff1a;database management system&#xff0c;缩写&#xff1a;DBMS&#xff09; 是一种针对对…

房地产公司的网站建设方案佛山做公司网站

目录 前言趣闻轶事65则参考文献 前言 有人的地方就有江湖&#xff0c;有江湖的地方就有故事。数学本身就是一个江湖&#xff0c;这个江湖也充满着血雨腥风和侠骨柔情&#xff0c;至今流传着各种各样的传说&#xff0c;其中不乏”马踏江湖潇潇事“&#xff0c;也有"何当共…

打一局吗(60pts 解法)

打一局吗 题目描述 Diaoyeye 作为健美先生,自然会受到很多人的挑战,nyx 便是他们中的一位。 nyx 具有自知之明,他知道 Diaoyeye 比他健美的多,和他刚正面显然不行,于是 要求 Diaoyeye 和他打牌。 nyx 制定的游戏…

软工9.23

今天学习了原码反码补码,原码将除符号位的其他位变成相反的数,再加一就成了补吗,创建补码的原因是统一零的唯一性,零由于符号位的存在,是不统一的,统一加法运算,如果去判断符号位来进行加减的话,运算量会变大。…

本地部署qwen-0.6b

导入需要的库 打开pycharm的终端(是终端不是python程序),下载下面的库pip install torch transformers datasets peft accelerate sentencepiece modelscope pip install modelscope pip3 install torch torchvisi…

门户网站建设方高校网站站群

在动态变化的IT环境中&#xff0c;故障预防与快速响应成为了运维管理的关键。监控易作为一体化运维监控平台&#xff0c;凭借其智能告警和精准定位的特性&#xff0c;为运维团队提供了强有力的支持&#xff0c;确保了IT系统的稳定运行。本文将深入探讨监控易在故障预警和快速定…

设计企业门户网站做网站有什么建议

题图来自溪源2017年拍摄的照片。弃码而去1那是2015年的一天。下午5点40&#xff0c;我收拾完手头上的工作&#xff0c;准备关机回家时&#xff0c;qq上突然弹出的窗口吸引了我的注意。“源哥&#xff0c;我能跟你聊一下么&#xff1f;”我点开一看&#xff0c;发现给我发消息的…

手机网站技术方案西安制作手机网站

Google Colab(Colaboratory) 是一个免费的云端环境&#xff0c;旨在帮助开发者和研究人员轻松进行机器学习和数据科学工作。它提供了许多优势&#xff0c;使得编写、执行和共享代码变得更加简单和高效。Colab 在云端提供了预配置的环境&#xff0c;可以直接开始编写代码&#x…

wordpress yeti 主题谷歌sem和seo区别

购买阿里云服务器 到[阿里云官网]&#xff0c;选择轻量应用服务器&#xff0c; 步骤如图所示&#xff1a; 地域随便选择哪一个&#xff0c;镜像的话&#xff0c;对比了CentOS&#xff0c;Debian&#xff0c;Ubuntu&#xff0c;我最终选择了CentOS&#xff0c;因为流行嘛&…

卖房子上哪个网站最好卖湖南网络营销

今日在地铁上浏览今日头条的时候看到这么个小题目&#xff0c;说是输出一长串字符串&#xff0c;输出字母串类别并且统计其出现次数&#xff0c;然后按照顺序将其输出来。例如输入aaaabbbcccccc&#xff0c;输出a4b3c6。 最近也一直在学习&#xff0c;所以就想着就Matlab来试了…

成都网站制作公司保险网站程序源码

一、前言 本系列如无特殊说明使用的虚幻版本都是5.2.1&#xff0c;VS为2022版本。在Unity中通常创建的脚本都默认继承了MonoBehavior&#xff0c;都是不能再用代码New而实例化的&#xff0c;虚幻也是一样不能直接New来实例化。在Unity中是通过Instantiate方法来实例化一个游戏对…