尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

CF1536C Diluc and Kaeya - crazy-

CF1536C Diluc and Kaeya - crazy-
📅 发布时间:2026/6/19 12:41:21

CF1536C Diluc and Kaeya

题意

题目传送门

给你一个字符串 \(S\),其中只包含 'K' 或 'D' 两种字符,要求划分这个字符串使得各部分的 \(n(D):n(K)\) 相同,其中 \(n(D)\) 表示 \(S\) 中字符 'D' 出现的个数,最大化划分后形成的组数。

求出 \(S\) 的所有前缀中的上述答案。

思路

注意到,如果到了第\(i\)个位置,且当前的比为\(a:b\),而存在一个\(j \in [1,i)\),也满足那个前缀的比为\(a:b\),那么两个比就可以合并为一个,和就是说\(ans_i=ans_j+1\)

所以,我们只需要存储在\(a:b\)条件下,最大的\(j\)是多少,然后加一并更新就好

这里可以用一个pair存储比值,避免直接除的误差问题

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int Maxn=5e5+10;
char s[Maxn];
int ans[Maxn];
int n,nd,nk;
void run()
{map<pair<int,int>,int>f;nd=nk=0;cin>>n>>(s+1);memset(ans,0,(n+3)*4);for(int i=1;i<=n;i++){if(s[i]=='D') nd++;else nk++;int g=__gcd(nk,nd);pair<int,int> p=make_pair(nd/g,nk/g);if(f[p]) ans[i]=++f[p];else ans[i]=f[p]=1;}for(int i=1;i<=n;i++) cout<<ans[i]<<" ";cout<<endl;
}
signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--) run();system("echo. & pause");return 0;
}

相关新闻

  • JavaScript 源代码的 AST 转换:Babel 插件是如何改变你编写的代码的?
  • 2、UNIX基础入门教程
  • CF1538F Interesting Function - crazy-

最新新闻

  • 魔兽争霸3终极优化指南:解锁高帧率与宽屏显示
  • RAG召回质量优化:chunk分块大小踩坑记
  • 术语俗话 --- 栈(Stack)vs堆(Heap)
  • 二七区卖黄金避坑实测,对比多家后才懂合扬无套路有多省心 - 奢侈品交易观察员
  • 2026 武汉本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 动态主题建模中的异常值识别与前瞻信号分析

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号