首页 > 其他分享 >20230723练习总结

20230723练习总结

时间:2023-07-23 18:22:41浏览次数:37  
标签:总结 texttt BB 后缀 练习 AB 规则 20230723 rightarrow

CF923D Picking Strings

当变化规则不好分析的时候可以考虑自己随便模拟一下变化过程,总结浓缩出一些等价且更简单的变化规则。

尝试推出几个比较简单的变化关系:

  1. \(\texttt{B}\rightarrow\texttt{AC}\rightarrow\texttt{AAB}\rightarrow\texttt{AAAC}\rightarrow\texttt{C}\rightarrow\texttt{AB}\rightarrow\texttt{AAC}\rightarrow\texttt{AAAB}\rightarrow\texttt{B}\),这说明 \(\texttt{B}\) 和 \(\texttt{C}\) 是等价的。

  2. \(\texttt{A}\rightarrow\texttt{BB}\),这说明 \(\texttt{A}\) 可以被替换为 \(\texttt{BB}\)。

  3. \(\texttt{B}\rightarrow\texttt{AB}\rightarrow\texttt{AAB}\rightarrow\texttt{AAAB}\rightarrow\texttt{B}\),这说明 \(\texttt{B}\) 和 \(\texttt{AB}\) 等价,即一个 \(\texttt{B}\) 可以随意增减前面紧接着的 \(\texttt{A}\)。

现在有了三条简化的规则,就可以开始分析如何判断。

  • 由规则 \(1\),可以将 \(S\) 和 \(T\) 中的 \(\texttt{C}\) 全部换成 \(\texttt{B}\)。变成了 \(A\) 和 \(B\) 组成的串。

  • 由规则 \(3\),后缀的连续 \(\texttt{A}\) 无法增加,故 \(S\) 中的后缀连续 \(\texttt{A}\) 应该不多于 \(T\) 中的后缀连续 \(\texttt{A}\)

  • 如果 \(S\) 后缀的连续 \(\texttt{A}\) 和 \(T\) 的后缀连续 \(\texttt{A}\) 数量之差不是 \(3\) 的倍数,将多出的部分替换成 \(\texttt{BB}\)。

  • 由规则 \(2\)、\(3\),\(\texttt{B}\) 会两个两个地增加或不变,故 \(S\) 中 \(\texttt{B}\) 的数量应该不多于 \(T\) 中 \(\texttt{B}\) 的数量,且差值为偶数

  • 如果 \(S\) 中全是 \(\texttt{A}\),\(T\) 中有 \(\texttt{B}\) 但后缀连续 \(\texttt{A}\) 的数量和 \(S\) 的长度相等则不行。

上文解法参考洛谷题解。

标签:总结,texttt,BB,后缀,练习,AB,规则,20230723,rightarrow
From: https://www.cnblogs.com/dks-and-xiao-yu/p/17575373.html

相关文章

  • 练习记录-AtCoder Beginner Contest 311-(A-E)
    写的还挺顺的F之后补A-FirstABC找abc三个字母什么时候出现了一次输出即可B-VacationTogether题意:最长的几个人一排里面均有时间#include<bits/stdc++.h>#defineclosestd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)usingnamespacestd;typedeflon......
  • 练习10.7 代码改错
    下面代码是否有错,怎么改1vector<int>vec;list<int>lst;inti;while(cin>>i) lst.push_back(i);copy(lst.cbegin(),lst.cend(),vec.begin());算法总是通过迭代器操作容器,不能直接向容器添加删除元素,无法改变元素的大小。对于copy算法,目标序列至少要和源序列有一样......
  • 数据结构练习笔记——顺序栈的基本操作
    顺序栈的基本操作【问题描述】按照要求完成顺序栈的设计【输入形式】无【输出形式】2019181716151413121110987654321#include<iostream>usingnamespacestd;#include<stdlib.h>#include<stdio.h>#defineSTACKSIZE10#defineINCRE2......
  • 「赛后总结」20230722 CSP 模拟赛
    「赛后总结」20230722CSP模拟赛点击查看目录目录「赛后总结」20230722CSP模拟赛反思题解T1回文思路代码T2快速排序思路代码T3混乱邪恶思路代码T4校门外歪脖树上的鸽子思路吓死我了我还以为K8He不更博了。为啥前天模拟赛不写啊?打过,没参加。为啥昨天模拟赛不......
  • 代码随想录-链表-C++总结
    代码随想录(programmercarl.com)这次复习的主要目的还是熟练c++的基本语法知识,顺带过一下链表的典型题目印象深刻直接没做出来的有7.链表相交,没有想到先过一遍求出两条链表的长度,然后通过长度差的信息来get交点做的时候写出bug的有3.设计链表,涉及的基础思想还是比较多的,需......
  • 7.22第三周总结
    这个星期,做了一下小活动。月底开始了我的暑期实践活动。最大的感受是,这个社会上有不少人有很大的毛病,但是与人为善的人要更多写。一些公司的白领,住在高档小区的剧名,素质都很高,餐品送达后会道谢,但是在住在路边简陋的屋子了的人对配送员的态度就不好,总是挑三拣四,可见人之间的距离还......
  • c语言_练习实例100
     题1:1.有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>intmain(){for(inti=1;i<5;i++){//取百位for(intj=1;j<5;j++){//取十位for(intk=1;k<5;k++){//取个位if(i!=j&&j!......
  • 假期第二周总结
    本周花在学习上的时间大约有四五天的时间,每天将近半天,先从安装Spark开始在厦门大学数据实验室学习的,在安装Spark之前要先安装Hadoop(伪分布式)在安装配置Hadoop之前又重新安装配置了VMware和虚拟机,虽然之前安装过但为了避免之后出现一些问题,又按照教程重新安装了一边,虚拟机用的......
  • 每周总结 第二周
    学习了idea的使用技巧,复习并检验了JDBC基础代码。本周编程学习时间约11h,其中代码时间约占3h,主要用于验证idea使用技巧和数据库连接与JDBC中的CRUD等基础操作,理论学习约占8h,主要学习python语言基础和复习JAVA语言、C++语言基本语法。......
  • 一周总结第四次
    这周完成了大量pta上的题目,学习了许多算法知识,虽然掌握并不熟练,但也收获颇多。对于Java课程也完成了许多学习,观看了许多视频。接下来一周将会重点进行大道至简书籍的阅读,并在月底之前完成一千字读后感的任务。......