当前位置: 首页 > ops >正文

题目 3293: 蓝桥杯2024年第十五届决赛真题-数位翻转

题目 3293: 蓝桥杯2024年第十五届决赛真题-数位翻转
时间限制: 2s 内存限制: 192MB 提交: 1046 解决: 318
题目描述
小明创造了一个函数 f(x) 用来翻转 x 的二进制的数位(无前导 0)。比如f(11) = 13,因为 11 = (1011)2,将其左右翻转后,变为 13 = (1101)2;再比如f(3) = 3,f(0) = 0,f(2) = f(4) = f(8) = 1 等等。

小明随机出了一个长度为 n 的整数数组 {a1, a2, ..., an},他想知道,在这个数组中选择最多 m 个不相交的区间,将这些区间内的数进行二进制数位翻转(将ai 变为 f(ai))后,整个数组的和最大是多少?

输入格式
输入共 2 行。

第一行为两个正整数 n, m。

第二行为 n 个由空格分开的整数 a1, a2, ..., an。

输出格式
输出共 1 行,一个整数表示答案。

样例输入复制
5 3
11 12 13 14 15
样例输出复制
67
提示
【样例说明 1】只翻转 a1,和为 13 + 12 + 13 + 14 + 15 = 67。

再比如:

【样例输入 2】6 223 8 11 19 16 35

【样例输出 2】134

【样例说明 2】翻转区间 [a3, a4] 和 [a6],和为 23 + 8 + 13 + 25 + 16 + 49 = 134。

【评测用例规模与约定】

对于 20% 的评测用例,保证 n, m ≤ 20。

对于 100% 的评测用例,保证 n, m ≤ 1000,0 ≤ ai ≤ 109。

1.分析

        偶数反转一定变小,判断奇数即可,先算出所有变大的差值,再找到差值最大的m个区间。

2.代码

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
const int MAX = 1e5+10;
typedef long long LL;
LL n, m;
LL a[MAX],b[MAX],sum;
LL reserse(LL x) {      //反转函数vector<LL> v;while (x) {LL t = x & -x;v.push_back(t);x -= t;}LL t = v[v.size() - 1];LL re = 0;for (int i = 0; i < v.size(); i++) {re += t / v[i];}return re;
}
int main() {cin >> n >> m;for (int i = 0; i < n; i++) {   //输入cin >> a[i];sum += a[i];}for (int i = 0; i < n; i++) {if (a[i] % 2 != 0) {       //判断计算差值LL t = reserse(a[i]);if (t > a[i]) {b[i] = t - a[i];}}}LL t = 0;vector<LL> v;for (int i = 0; i < n; i++) {   //计算区间if (b[i]) {t += b[i];}else if (t != 0) {v.push_back(t);t = 0;}}if (t != 0) v.push_back(t);sort(v.begin(), v.end());for (int i = v.size()-1; i >=0; i--) {       //找到前m个区间if (v.size()-1-i<m) {sum += v[i];}}cout << sum << endl;return 0;
}

http://www.xdnf.cn/news/9859.html

相关文章:

  • 编程技能:格式化打印01,vsprintf 函数族简介
  • 相机--双目立体相机
  • iOS 集成网易云信IM
  • Edge浏览器怎样开启兼容模式
  • t014-项目申报管理系统 【springBoot 含源码】
  • 推荐3个优秀wordpress主题
  • Electron-vite【实战】MD 编辑器 -- 文件列表(含右键快捷菜单,重命名文件,删除本地文件,打开本地目录等)
  • 基于分布式状态机的集装箱智能道口软件架构方法
  • 室内VR全景助力房产营销及装修
  • 机器学习与深度学习05-决策树01
  • 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)解题报告 | 珂学家
  • Telerik生态整合:Kendo UI for Angular组件在WinForms应用中的深度嵌入(一)
  • 直线模组在手术机器人中有哪些技术挑战?
  • “百亿补贴”商家承担比例升至70%-80%,京东外卖家也没“余粮”了?
  • 基于定制开发开源AI智能名片S2B2C商城小程序的大零售渗透策略研究
  • 代码随想录算法训练营 Day60 图论Ⅹ Bellmen_ford 系列算法
  • Visual Studio中的宏变量
  • (ICML-2025) RIFLEx:视频扩散Transformer中长度外推的“免费午餐”
  • NVIDIA英伟达AI图片视频内容描述总结软件describe-anything整合包
  • 十二、FTP服务器配置与应用
  • 【博客系统】博客系统第十一弹:从零开始在 Linux 系统上搭建 Java 部署环境并部署 Web 项目
  • 扫地机产品异物进入吸尘口堵塞异常检测方案
  • 软考-系统架构设计师-第十六章 层次式架构设计理论与实践
  • Dif-Fusion:第一个基于扩散模型实现的红外光与可见光图像融合的论文
  • 【Linux系统移植】Cortex-A8 Linux系统移植(超详细)
  • [250529] CrateDB 5.10.7 发布:一系列重要修复与升级注意事项
  • 实战指南:步进电机规格书参数解析——以28BYJ48为例(不聊原理,只讲应用)
  • 【HarmonyOS 5】UIAbility上下文切换途中造成的Toast提示展示错窗口的解决方案
  • PyTorch中 torch.utils.data.DataLoader 的详细解析和读取点云数据示例
  • 机动车结构化检测算法AI智能分析网关V4打造全场景应用解决方案