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

【题解】CF946E Largest Beautiful Number

比较简单的贪心。为了让构造的数 \(t\) 的值尽量大,容易想到尽可能的让 \(s,t\) 的公共前缀最大。而一个数 \(x\) 是美丽数的充要条件是没有出现次数为奇数的数字。因此枚举这个最长的公共前缀位置 \(k\),用前缀和判断 \(\text{pre}(s,t)\ge k\) 是否可行。找到最大的满足条件的 \(k\) 后,贪心的把出现次数为奇数的数从大到小添到 \(t\) 的末尾部分,剩余部分全填 \(9\) 即可。

总时间复杂度为 \(O(n)\),可以轻松通过。

#pragma GCC optimize(3, "Ofast", "inline", "unroll-loops")
#include <iostream>
#include <cstring>
#define int long long
using namespace std;
const int N = 1000010;
const int inf = 1e18;
const int mod = 998244353;inline int power(int a, int b, int c)
{int ans = 1;while (b){if (b & 1)ans = ans * a % c;a = a * a % c, b >>= 1;}return ans;
}inline int inversion(int x) { return power(x, mod - 2, mod); }using ull = unsigned long long;
using i128 = __int128;char s[N];
int pre[N][10];signed main()
{// freopen("1.in", "r", stdin);// freopen("1.out", "w", stdout);// cin.tie(0)->sync_with_stdio(false);int T;cin >> T;while (T--){scanf("%s", s + 1);int n = strlen(s + 1), idx = n - 1;for (int i = 1; i <= n; ++i){for (int j = 0; j < 10; ++j)pre[i][j] = pre[i - 1][j];pre[i][s[i] & 15] ^= 1;}for (int i = n; i; --i)for (int j = (s[i] & 15) - 1; ~j; --j)if (i != 1 || j){int cnt = 0;for (int k = 0; k < 10; ++k){if (j == k)cnt += 1 ^ pre[i - 1][k];elsecnt += pre[i - 1][k];}if (cnt <= n - i){for (int k = 1; k < i; ++k)cout << s[k];cout << j;for (int k = i + 1; k <= n - cnt; ++k)cout << 9;for (int k = 9; ~k; --k){if (j == k){if (!pre[i - 1][k])cout << k;}else{if (pre[i - 1][k])cout << k;}}goto label;}}while (idx & 1)--idx;for (int i = 1; i <= idx; ++i)cout << 9;label:;cout << '\n';}return 0;
}
http://www.jsqmd.com/news/326960/

相关文章:

  • 自定义内存布局控制
  • 嵌入式LinuxC++开发
  • 【题解】P14224 [ICPC 2024 Kunming I] 子数组
  • 自定义操作符重载指南
  • Python游戏中的碰撞检测实现
  • 图标提取神器!一键提取软件安装包中的图标
  • 图片画质增强神器!模糊照片秒变高清
  • 代码质量卫士:使用Pylint和Flake8
  • C++中的策略模式变体
  • Python Web爬虫入门:使用Requests和BeautifulSoup
  • 工具、测试与部署
  • 自动化你的日常工作:一个Python脚本的诞生
  • 构建一个桌面版的天气预报应用
  • 【题解】P7315 [COCI 2018/2019 #3] Sajam
  • 使用Kivy开发跨平台的移动应用
  • 分布式系统C++实现
  • Pcdmis海克斯康三坐标脱机软件2013至2021 CAD++全功能 远程包安装
  • 异常安全编程指南
  • 编译器命令选项优化
  • C++中的组合模式实战
  • C++与量子计算模拟
  • 当极限学习机遇上猛禽:用天鹰算法调参实战
  • 【题解】CF1773G Game of Questions
  • 深度学习框架YOLO+DeepSeek农作物病虫害检测系统 结合DeepSeek、Qwen等大模型对检测结果给出相关建议,并可将检测报告导出为PDF文件。另外添加可视化界面对检测结果进行可视化显示。
  • 【题解】CF2085F2 Serval and Colorful Array (Hard Version)
  • 基于STM32和FreeRTOS的智能家居设计之路 - 指南
  • C++编译期数组操作
  • 【题解】P14561 [CXOI2025] 我常常追忆过去
  • C++中的享元模式变体
  • 深耕蚌埠 全域运营|三十六行蚌埠分公司解锁本地商户增长新路径