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

小美的01串翻转【牛客tracker 每日一题】

小美的01串翻转

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

小美定义一个01 0101串的权值为:每次操作选择一位取反,使得相邻字符都不相等的最小操作次数。
例如," 10001 " "10001""10001"的权值是1 11,因为只需要修改一次:对第三个字符取反即可。
现在小美拿到了一个01 0101串,她希望你求出所有非空连续子串的权值之和,你能帮帮她吗?

输入描述:

一个仅包含′ 0 ′ '0'0′ 1 ′ '1'1的字符串,长度不超过2000 20002000

输出描述:

所有非空子串的权值和。

示例1

输入:

10001

输出:

8

说明:

长度为 2 的子串中,有2 22" 00 " "00""00"的权值是1 11
长度为3 333 33个子串权值都是1 11
长度为4 442 22个子串权值都是1 11
长度为5 551 11个子串权值是1 11
总权值之和为2 + 3 + 2 + 1 = 8 2+3+2+1=82+3+2+1=8

解题思路

本题核心是枚举子串+前缀和优化求解所有子串的最小翻转权值之和。满足相邻字符不同的01 0101串仅有两种固定模式:奇数位为1 11、偶数位为0 00;奇数位为0 00、偶数位为1 11。任意子串的最小翻转次数 = 子串长度 - 两种模式中匹配字符数的最大值。使用前缀和数组预处理两种模式下的字符匹配数量,双重循环枚举所有非空连续子串,通过前缀和O(1)计算子串的匹配数,求出权值后累加。算法时间复杂度O ( n 2 ) O(n^2)O(n2),字符串长度不超过2000 20002000,计算量仅400 400400万,高效且精准。

总结

核心逻辑:交替01 0101串仅两种合法模式,最小翻转次数由最大匹配数决定,枚举所有子串求和。
关键操作:前缀和预处理模式匹配数,双重循环枚举子串,快速计算单串权值并累加。
效率保障:O ( n 2 ) O(n^2)O(n2)复杂度完美适配题目长度限制,无冗余计算,快速得到答案。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vt;typedefpair<ll,ll>pll;constll N=2e7+10;constll p=1e9+7;constll INF=1e18;constll M=2e3+10;intmain(){string s;cin>>s;ll n=s.size();vector<ll>x1(n+1,0),x2(n+1,0),y1(n+1,0),y2(n+1,0);for(ll i=1;i<=n;i++){x1[i]=x1[i-1];x2[i]=x2[i-1];y1[i]=y1[i-1];y2[i]=y2[i-1];if(i&1){if(s[i-1]=='1')x2[i]++;elsex1[i]++;}else{if(s[i-1]=='1')y2[i]++;elsey1[i]++;}}ll ans=0;for(ll i=1;i<=n;i++)for(ll j=i;j<=n;j++){ans+=j-i+1-max(y1[j]-y1[i-1]+x2[j]-x2[i-1],y2[j]-y2[i-1]+x1[j]-x1[i-1]);}cout<<ans<<endl;return0;}
http://www.jsqmd.com/news/641407/

相关文章:

  • 触摸传感器 - 从原理到实战,一文读懂触控技术【深度解析】
  • Vue3 完美对接硬件扫码枪:onscan.js 实战与并发队列处理
  • PureDarwin社区生态建设:如何参与开源项目并贡献代码
  • OSG进阶实践:基于QOpenGLWidget的3D场景高效嵌入Qt6窗口
  • 反激电源设计避坑指南:为什么你的双闭环控制反而导致MOS管炸机?
  • 2026年增额寿险:收益、回本、灵活性,哪款才是你的“压舱石”? - 资讯焦点
  • 5秒获取百度网盘提取码:彻底解决资源访问难题的智能方案
  • 兰亭妙微形状设计实战指南:从按钮圆角到底纹层次的UI组件规范与品牌识别 - ui设计公司兰亭妙微
  • 2026年三螺杆挤出造粒机厂家实力推荐:平行三螺杆/积木式三螺杆/改性塑料挤出造粒机专业解析 - 品牌推荐用户报道者
  • 视频号、抖音、快手有网页端入口
  • 2026铁路相关中专学校推荐榜 附南昌校咨询指引 - 资讯焦点
  • Datart连接数据库报错?手把手教你调优Druid连接池参数(附实战配置)
  • To B技术创业,内容营销的四层增长飞轮模型
  • Yi-Coder-1.5B智能合约:Solidity开发实战
  • 如何实现抗体高效表达与纯化?
  • dialog-polyfill 性能优化:如何减少资源占用并提升用户体验
  • 2026年钢骨架复合管厂家推荐:钢骨架塑料复合管/钢丝网骨架塑料复合管/钢骨架聚乙烯复合管等工业管道优质供应商 - 品牌推荐用户报道者
  • EVA-02模型API代理解决403 Forbidden访问问题实战
  • 从电机调速到LED调光:双向可控硅(TRIAC)的6种实战应用电路详解
  • Halcon图像处理避坑:为什么你的rotate_image效果不理想?仿射变换的正确打开方式
  • 2026年4月 | 功效护肤品牌TOP8推荐 - 资讯焦点
  • 应对仓储压力:企业如何根据货物特性选择合适的货架类型 - 资讯焦点
  • 保姆级教程:在ROS 2 Humble中,用robot_state_publisher让R2D2在Rviz里动起来
  • 2026年风冷切挤出机厂家推荐,塑料挤出机/双螺杆挤出机/改性塑料挤出机/水拉条挤出机源头实力品牌精选 - 品牌推荐用户报道者
  • Epusdt多钱包轮询技术揭秘:提升支付并发率的终极方案
  • cv_unet_image-colorization效果展示:不同年代黑白影像的色彩风格适配
  • 2026南京geo优化推荐5家精选|本地化搜索竞争新策略 - 资讯焦点
  • 万象熔炉 | Anything XL部署教程:Docker镜像封装+GPU容器化部署方案
  • 告别环境依赖:PyInstaller一键打包YOLO检测程序,实测踩坑与优化心得
  • Pogocache未来展望:路线图解析与企业级功能规划