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

G. ABBC or BACB

https://codeforces.com/problemset/problem/1873/G

题意:给定长度为n的字符串s,s包含A和B,AB可变换为BC,加一分。BA可变换为CB,加一分,问最多加多少分。

思路:动态规划,考虑每个B往前变或者往后变的分值,用dp[i][0]和dp[i][1]表示。dp[i][0] = dp[i][0] + dp[i - 1][0],
dp[i][1] += max(dp[i - 1][0], dp[i - 1][1])

总结:一开始没发现这个操作有什么特性,感觉好像是贪心的解法,后面看了题解的第一段才发现,这个B可以当作一个吃A的东西,可以往左吃,也可以往右吃,然后依次考虑每个B吃的最大分值就行了。

inline void solve() {string s;cin >> s;int n = (int)s.size();vector<int> p;for (int i = 0; i < n; ++i) {if (s[i] == 'B') {p.push_back(i);}}if (p.empty()) {cout << "0\n";return;}int m = (int)p.size();vector<array<int, 2>> dp(m);for (int i = 0; i < m; ++i) {int cnt = 0;for (int j = p[i] - 1; j >= 0 && s[j] == 'A'; --j)  {cnt ++;}dp[i][0] = cnt;if (i) {dp[i][0] += dp[i - 1][0];dp[i][0] = max(dp[i][0], dp[i - 1][1]);}cnt = 0;for (int j = p[i] + 1; j < n && s[j] == 'A'; ++j) {cnt ++;}dp[i][1] = cnt;if (i) {dp[i][1] += max(dp[i - 1][0], dp[i - 1][1]);}}cout << max(dp[m - 1][0], dp[m - 1][1]) << '\n';
}
http://www.sczhlp.com/news/10246/

相关文章:

  • JetBrains WebStorm 2025.2 (macOS, Linux, Windows) - JavaScript 和 TypeScript IDE
  • 牛逼!花了9天,开发了一款一站式智能测试平台:STP!
  • VMware Avi Load Balancer 30.2.4 - 多云负载均衡平台
  • VMware NSX 4.2.3 - 网络安全虚拟化平台
  • JetBrains IDE 2025.2 (macOS, Linux, Windows) - 跨平台开发者工具
  • JetBrains IntelliJ IDEA 2025.2 (macOS, Linux, Windows) - 领先的 Java 和 Kotlin IDE
  • 题解:AT_agc033_e [AGC033E] Go around a Circle
  • 【经管文化主题|高录用快检索】第七届经济管理与文化产业国际学术会议
  • 多线程
  • JetBrains CLion 2025.2 (macOS, Linux, Windows) - C 和 C++ 跨平台 IDE
  • 快消巨头杨掌柜:用纷享销客CRM实现渠道数字化升级
  • Omnissa Unified Access Gateway 2506 - 远程安全的应用程序访问
  • Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
  • 第七届经济管理与文化产业国际学术会议(ICEMCI 2025)
  • cookie,session,localstorage,sessionstorage一次讲清楚
  • Maven jar上传Nexus教程
  • 7.1组合计数
  • 浅学 FHQ
  • DeepCompare文件深度对比软件:智能文本对比与差异统计功能完全指南
  • 单据上采购数量按3个单位分别显示数量
  • 致敬2025年还在写博客的你
  • MyBatis-Plus
  • 概率论的基础
  • 【IEEE出版】第三届电力、电网和储能国际学术会议(PGES 2025)
  • 记录下MySQL的分区表
  • 从 “JSON 字段适配噩梦” 到 “Spring Boot 优雅解决方案”,你只差这一篇
  • 【IEEE出版】第四届电力系统与电力工程国际学术会议(PSPE 2025)
  • 题解:P10299 [CCC 2024 S5] Chocolate Bar Partition
  • 关闭Ollama开机启动项
  • MySQL 根据一个表的字段值,更新另一个表的字段