Codeforces Round #724 (Div. 2) C. Diluc and Kaeya

news2024/11/27 20:36:24

翻译:

蒙德施塔特一个酒庄帝国的大亨,在任何方面都无可匹敌。法佛尼乌斯骑士团中具有异域外表的思想家。

这一次,兄弟俩要处理的是一块刻着他们名字的奇怪木头。这块木板可以表示为一串𝑛字符。每个字符不是“D”就是“K”。您希望在这个字符串上进行一些切割(可能是0),将它划分为几个连续的片段,每个片段的长度至少为1。兄弟俩做事都很有尊严,所以他们想把木头尽可能平均地劈开。他们想知道你能把木头分成的最大块数,使每一块中出现D的次数与出现K的次数之比相等。

Kaeya是一个好奇的思考者,他对多种场景的解决方案感兴趣。他想知道给定字符串的每个前缀的答案。帮他解决这个问题!

对于字符串,我们将比率定义为𝑎:𝑏,其中'D'出现𝑎次,'K'出现𝑏次。注意𝑎或𝑏可以等于0,但不能同时等于0。比率𝑎:𝑏𝑐:𝑑被认为是相等当且仅当𝑎⋅𝑑=𝑏⋅𝑐。

例如,对于字符串'DDD',比例将是3:0,对于'DKD' - 2:1,对于'DKK' - 1:2,对于' kkkdd ' - 2:4。请注意,后两个字符串的比值是相等的,但它们不等于前两个字符串的比值。

输入
每个测试包含多个测试用例。第一行包含测试用例的数量𝑡(1≤𝑡≤1000)。测试用例的描述如下。

每个测试用例的第一行包含整数𝑛(1≤𝑛≤5⋅105)——木料的长度。

每个测试用例的第二行包含一个长度为𝑛的字符串𝑠。𝑠的每个字符要么是“D”,要么是“K”。

保证𝑛在所有测试用例上的总和不超过5⋅105。

输出
对于每个测试用例,输出𝑛空格分隔的整数。这些数字的𝑖-th应该等于前缀𝑠1,𝑠2,…,𝑠𝑖的答案。

例子
inputCopy
5
3.
DDK
6
DDDDDD
4
DKDK
1
D
9
DKDKDDDDK
outputCopy
1 2 1
1 2 3 4 5 6
1 1 1 2
1
1 1 1 2 1 2 1 1 3
请注意
对于第一个测试用例,没有办法将“D”或“DDK”划分为多个具有相同数量比例的“D”和“K”的块,而您可以将“DD”划分为“D”和“D”。

对于第二个测试用例,您可以将每个长度为𝑖的前缀分割为𝑖块“D”。

思路:每次划分前缀,相同等比例的最大值,我们可以每次记录比例的次数,因为我们可以容易得出这样的一个结论,当D:K=1:2,等后面比例再次到达D:K=1:2,那么中间这一段也一定是D:K=1:2。所以我们每次记录前边比例的出现的次数,当前的最大的就是之前同比例的累加中最大的。

代码:

#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include <stdio.h>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<tuple>
#include<numeric>
#include<stack>
using namespace::std;
typedef long long  ll;
int n,t;
inline __int128 read(){
    __int128 x = 0, f = 1;
    char ch = getchar();
    while(ch < '0' || ch > '9'){
        if(ch == '-')
            f = -1;
        ch = getchar();
    }
    while(ch >= '0' && ch <= '9'){
        x = x * 10 + ch - '0';
        ch = getchar();
    }
    return x * f;
}
inline void print(__int128 x){
    if(x < 0){
        putchar('-');
        x = -x;
    }
    if(x > 9)
        print(x / 10);
    putchar(x % 10 + '0');
}
ll  gcd(ll a,ll b)
{
    if (b==0) {
        return a;
    }
    return gcd(b, a%b);
}

string s;
void solv(){
    cin>>n;
    cin>>s;
    map<pair<int, int>,int>q;
    int d=0,k=0;
    for (int i=0; i<n; i++) {
        if (s[i]=='D') {
            d++;
        }
        if (s[i]=='K') {
            k++;
        }
        int jk=gcd(d, k);
        q[{d/jk,k/jk}]++;
        printf("%d ",q[{d/jk,k/jk}]);
        
    }printf("\n");
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(); cout.tie();
    cin>>t;
    while (t--) {
        solv();
    }
    return 0;
}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Activiti7工作流(一)

工作流介绍 工作流(Workflow)&#xff0c;就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程&#xff0c;从而实现某个预期的业务目标&#xff0c;或者促使此目标的实现”。 案例: 出差费…

视频编解码 — 码控算法

目录 码控算法 码控算法的类型 具体操作过程如下 复杂度求解 帧组级 帧级 GOM级 码控算法 用算法来控制编码器输出码流的大小&#xff0c;码控就是为一帧图像选择一个合适的QP值的过程。 一帧图像的画面确定了之后&#xff0c;画面的复杂度和QP值几乎决定了编码之后的…

float32转float16

背景 当下做AI基本都用float16进行推理&#xff0c;目前用的比较多的还有bfloat16, 这里我们只讨论float16的这个数据类型。float16有个优点是大部分的GPU或者部分CPU支持float16的计算&#xff0c;速度快于float32, 此外显存或者内存也可以减少一半&#xff0c;基于这个特点&…

2022年12月1日最新的SqlServer安装教程

文章目录1、在线安装文件下载2、下载安装包3、下载安装SSMS1、在线安装文件下载 &#xff08;1&#xff09;进入官网地址&#xff0c;点击下载&#xff1a;SqlServer下载 &#xff08;2&#xff09;等待下载结束&#xff0c;大约几M &#xff08;3&#xff09;打开下载的.ex…

Spring Security基于jwt实现权限校验

一 引言 在基于springsecurity和jwt实现的单体项目token认证中我实现了基于jwt实现的认证,本文在此基础上继续实现权限认证 用户认证成功后携带jwt发起请求,请求被AuthenticationFilter拦截到,进行jwt的校验jwt校验成功后,调用JwtAuthenticationProvider从jwt中获得权限信息…

一个分布在多次Softmax后,会趋于相同

本文其实是我在知乎上无意中翻到的一条提问&#xff1a;softmax到底有哪些作用&#xff1f;&#xff0c;其中苏剑林大佬关于第四个问题的回复&#xff0c;给我产生了一些思考。为什么一个分布在多次Softmax之后&#xff0c;每个值会趋于相同&#xff1f;例如[1,100]在大约10次S…

[附源码]JAVA毕业设计高校心理咨询预约系统(系统+LW)

[附源码]JAVA毕业设计高校心理咨询预约系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

新建esp32的vscode工程的三种方式

普通的idf工程在vscode下直接打开的时候&#xff0c;会发现很多头文件都是报错的&#xff0c;一些函数/类型等的定义也无法找到&#xff0c;比较影响阅读&#xff1a; 因此在vscode上开发esp32的时候&#xff0c;最好为这个工程提供vscode的支持&#xff0c;以下是三种实现的…

商务部研究院信用所、启信宝联合发布《中国商务信用发展指数报告(2022)》

近期&#xff0c;商务部国际贸易经济合作研究院信用研究所与合合信息全资子公司上海生腾数据科技有限公司&#xff08;简称“生腾数据”&#xff09;联合发布了《中国商务信用发展指数报告&#xff08;2022&#xff09;》&#xff08;简称《报告》&#xff09;。为准确反映中国…

NLP中的对抗训练(附PyTorch实现)

对抗样本的基本概念 要认识对抗训练&#xff0c;首先要了解"对抗样本"&#xff0c;它首先出现在论文Intriguing properties of neural networks之中。简单来说&#xff0c;它是指对于人类来说"看起来"几乎一样&#xff0c;但对于模型来说预测结果却完全不…

[附源码]JAVA毕业设计公务用车管理智慧云服务监管平台(系统+LW)

[附源码]JAVA毕业设计公务用车管理智慧云服务监管平台&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…

[附源码]Python计算机毕业设计SSM蓝色港湾房产交易与租赁系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

最近基于深度学习大火的AIGC将会抢原创工作者的饭碗?

NLG | CLIP | Diffusion Model GAN | AIGC | Stable Diffusion 随着CLIP、DALLE、Diffusion Model、Magic3D、Stable Diffusion等技术的快速发展&#xff0c;AIGC在全球各大科技巨头间可谓是高频词汇&#xff0c;连带着AI这个老生常谈的话题也一并火热起来。 去年三月&#xf…

【R】R包MethylCal安装问题解决 Rtools is required to build R packages

文章目录写在前面问题描述解决过程【1】安装INLA【2】安装Rtools写在前面 吐槽一番&#xff1a; 一般情况下&#xff0c;不是在万不得已&#xff0c;真心不想用R&#xff0c;最让人望而却步的就是包的安装问题&#xff0c;动不动就出现版本不兼容问题&#xff0c;或者下载这个…

Chapter9.5:线性系统的状态空间分析与综合考研参考题

此系列属于胡寿松《自动控制原理题海与考研指导》(第三版)习题精选&#xff0c;仅包含部分经典习题&#xff0c;需要完整版习题答案请自行查找&#xff0c;本系列属于知识点巩固部分&#xff0c;搭配如下几个系列进行学习&#xff0c;可用于期末考试和考研复习。 自动控制原理(…

Java本地高性能缓存的几种实现方式

Java缓存技术可分为远端缓存和本地缓存&#xff0c;远端缓存常用的方案有著名的redis和memcache&#xff0c;而本地缓存的代表技术主要有HashMap&#xff0c;Guava Cache&#xff0c;Caffeine和Encahche。本篇博文仅覆盖了本地缓存&#xff0c;且突出探讨高性能的本地缓存。 本…

美信监控易:网络管理之链路专线管理

专线通常是指运营商为企事业单位提供的专用网络线路&#xff0c;用于满足其业务需求。专线管理可以提供对专线基础信息的维护&#xff0c;以及性能数据的监测能力。通过系统自动地、周期性地执行专线测试&#xff0c;获取指标数据&#xff0c;实现专线连通性、性能数据的全面感…

图数据结构之邻接链表Adjacency List(Python版)

前面学过两种图的数据结构&#xff0c;有兴趣的可以查阅&#xff1a;图数据结构之字典实现(Python版)https://blog.csdn.net/weixin_41896770/article/details/128125901 图数据结构之邻接矩阵Adjacency Matrix(Python版)https://blog.csdn.net/weixin_41896770/article/detai…

中文Stable Diffusion模型太乙使用教程

中文Stable Diffusion模型太乙使用教程 太乙模型介绍 在线体验地址: Stable Diffusion 太乙模型&#xff0c;首个开源的中文Stable Diffusion模型&#xff0c;基于0.2亿筛选过的中文图文对训练。 生成内容一直被视为 AI 领域中最具有挑战性的能力&#xff0c;最近大火的 AI 绘…

文献管理软件Zotero的安装和使用

文章目录前言一、Zotero简介二、安装与使用1、账号注册2、软件安装3、插件安装4、关联账户设置5、坚果云扩充&#xff08;WebDAV&#xff09;6、保存路径设置7、与Connected Papers联动8、参考文献的引用前言 随着阅读文献数量的增加&#xff0c;感觉一个好用的文献管理工具必…