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

题解:P14015 [ICPC 2024 Nanjing R] 生日礼物

更差的阅读体验


经典套路,我个人认为是橙题。

相邻相等不好刻画,我们直接把偶数位置反转,这样一组相邻相等中恰好有一个被反转,变成删除相邻不同。

那么假设没有 \(2\),最终序列中一定只有 \(0\)\(1\)。所以假设 \(0,1\) 个数分别是 \(c_0, c_1\),那么由于一次消除一个 \(0\) 一个 \(1\),所以答案是 \(|c_0 - c_1|\)

\(2\) 之后,其实也不用推式子,直接枚举 \(c_2\)\(2\) 几个分给 \(0\) 几个分给 \(1\) 就行了。

那么这道题就做完了,复杂度 \(O(T|A|)\)

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define N 500006
using namespace std;
int T,n,ans;
char ch[N];
vector<int> cnt(3);
main()
{scanf("%lld",&T);while(T--){scanf("%s",ch+1),n=strlen(ch+1),cnt={0,0,0},ans=1e15;for(int i=2;i<=n;i+=2)if(ch[i]=='0')ch[i]='1';else if(ch[i]=='1')ch[i]='0';for(int i=1;i<=n;i++)cnt[ch[i]^48]++;for(int i=0;i<=cnt[2];i++)ans=min(ans,abs(cnt[0]+i-cnt[1]-(cnt[2]-i)));printf("%lld\n",ans);}return 0;
}
http://www.zskr.cn/news/3198.html

相关文章:

  • HyperWorks许可回收机制
  • flutter开发window打包成exe可执行文件的步骤
  • 基于Linux系统的定制软件安装硬件设备选型指南
  • c++之is_trivially_default_constructible
  • 猫树分治
  • AI导航生成寻路点-FindPathToLocationSynchronously
  • 智聘无界:AI 破解全球化招聘合规、成本与人才匹配难题的实践路径
  • Flink 与Flink可视化平台StreamPark教程(CDC功能)
  • GAS_Aura-Setting Up Auto Running
  • 源码调试-带你了解下车牌识别的深度学习模型-LPRNet
  • charles破解-在线生成激活码
  • 内部排序-直接插入排序冒泡排序快速排序对比
  • C++ auto关键字
  • ARM主板:低功耗高性能的嵌入式计算核心
  • Gin 模板系统深度解析:客服系统实战开发
  • 系统盘爆了,.vscode,.android占内存太多,使用mklink命令符号链接
  • Acrobat Pro DC 2025下载及破解安装教程,附永久免费免激活中文破解版Acrobat Pro DC安装包(稳定版)
  • 2025绩效管理必知
  • Laravel APP_DEBUG=true:存在账户信息泄露风险
  • 在Proxmox中部署Security Onion的安全配置实战
  • 报表到 BI:企业数据从展示到决策的进阶之路
  • Flink 与Flink可视化平台StreamPark教程(DataStreamApi基本使用)
  • 内部排序-直接插入排序
  • Linux:龙晰系统(Anolis)更新yum(dnf)仓库源
  • 研究生-必看-倒计时3天/武汉科技大学主办/稳定EI会议/高层次教授出席报告
  • LGP7113 [NOIP 2020] 排水系统 学习笔记
  • SQL Server 2022 RTM 累积更新 #21 发布
  • 微算法科技(NASDAQ: MLGO)开发Rollup技术,探索区块链扩展性解决方案
  • Docker:龙晰系统(Anolis)更新yum源下载docker
  • 针对单输入单输出、多输入多输出及三阶系统带约束的模型预测控制的实现