首页 > 其他分享 >Prefixes and Suffixes (CF D) (字符串翻转找性质)

Prefixes and Suffixes (CF D) (字符串翻转找性质)

时间:2023-10-12 17:46:40浏览次数:41  
标签:匹配 位置 CF Prefixes si ti Suffixes 性质 翻转

 思路:

  • 利用操作 使得题目更好分析, t 的后缀,反转t , 来看t 的前缀, 
  • 实际操作的时候, 把s 和 t 的前缀在反转一下进行交换就可以了,
  • 发现性质 1 C(si, ti) 他们的相对位置不会变化, 一直是匹配的
  • 然后利用 翻转的性质, 一定会产生任意我想要的排列 
  • (从后开始构造, 先把目标翻转到1, 在把1翻转到目标位置)
  • 注意每次翻转 si ti 上下位置会变化, 利用 位置1 进行翻转, 来达到我想要上下位置关系
  • 由此我可以得到任意排列上下队列
  • 然后以C(si, ti) 为单位来看看谁能和他匹配, 能和他匹配的 就是和他一样的, (相对位置关系) 
  • n 为偶数 任意匹配数都为偶数
  • n为奇数, 可以允许一个
  • 匹配数利用 hash 来具体数字化表示即可 

关键:

  • 是从 操作中 找到性质

 

标签:匹配,位置,CF,Prefixes,si,ti,Suffixes,性质,翻转
From: https://www.cnblogs.com/Lamboofhome/p/17760123.html

相关文章

  • 题解 CF486D Valid Sets
    题目链接相当牛逼。这种找数量的题型,确定树形\(dp\)没跑了。首先思考常规树形\(dp\),不难想到设\(f_{u,a,b}\)表示以\(u\)为根节点的子树内(包括点\(u\)),最大值是\(a\),最小值是\(b\)的连通子图数量,转移很容易,但是这样时间空间复杂度是\(\rmO(n^3)\),而且无论是状态上......
  • Slime Escape (CF D) (贪心, 双指针最大有效权值单调增长)
     补充:每次操作可以往左或者右走一步 思路:性质:以一边为重点使劲走,然后利用另外一边来给自己权值变大当这边要死了,就把这边回退到最大值,在走另一边,看另一边能到哪,这样每次都可以扩展最大值,于是利用双指针?也不是双指针,就是l,r分别贪心地向左和......
  • [CF1098E] Fedya the Potter 题解
    [CF1098E]FedyathePotter题解前言一道类欧好题。题解这道题让求\(c\)数组的中位数,那么有一个比较套路的方法就是二分答案\(mid\)然后计算\(b\)数组中区间和小于\(mid\)的区间个数进行\(check\)。但是\(b\)数组总共有\(\mathcal{O}(n^2)\)项,考虑如何优化。因......
  • CF882E1+CF1882E2 Two Permutations 题解-构造题
    CF882E1+CF1882E2TwoPermutations题解-构造题哇,人类智慧,太智慧了。。。此题作为20231010联考的T3。感觉赛时根本没有去往这方面想。CF1882E1CF1882E2E1是简单版,就是没有要求操作数最小化。E1-EasyVersion方法1首先考虑没有次数限制的,对于单独的每一个串的情况。......
  • CF1333A [Little Artem]
    Problem题目简述给你一个\(n\timesm\)的方格,构造一个方案,使得方案中\(B=W+1\)。\(B\):相邻的格子有至少一个白色格子的黑色格子的个数。\(W\):相邻的格子有至少一个黑色格子的白色格子的个数。思路分奇偶讨论。\(n\timesm\)是偶数:构造一张黑、白相间的矩阵,左上......
  • CF1766B [Notepad#]
    Problem题目简述给你一个整数\(n\)和字符串\(s\),问:能不能在小于\(n\)次操作的情况下,输出字符串\(s\)。有两次操作可供使用:在已打出内容的最后添加一个字符。复制已打出内容的一个连续的子串并加到内容的末尾。思路用到的容器:\(\text{map}\)。用\(\text{map}\)来......
  • CF1401B [Ternary Sequence]
    Problem题目简述两个序列\(A,B\)。这两个序列都是由\(0,1,2\)这三个数构成。\(x_1,y_1,z_1\)和\(x_2,y_2,z_2\)分别代表\(A\)序列和\(B\)序列中\(0,1,2\)出现的次数。你可以重新排列两个序列中的元素,然后生成一个新序列\(C\),\(C\)的生成规则如下:\[C_i......
  • CF1796D 做题笔记
    题目链接一眼题,但这个$k$迷惑了我很久。由于我初始的思路没考虑$x<0$,所以我们先默认$x>0$。考虑任意一个是最优答案的最大子段和,如果它的长度$<k$那么它的每个元素一定都加上了$x$,如果它的长度$>k$,那么它的$k$个元素一定加上了$x$,剩余的一定减去了$x$。小于$k$......
  • 开学过半 (cf补题和算法训练)
    Problem-A-Codeforces题意:给你一个n/2个元素的b数组,然后让你构造出一个n个元素的排列数组其中这些p数组里的数有以下要求注意这个p数组要求你搞字典序最小,也就是最好小的元素在前面如果b =[4,3,6],那么可以从中得到的词法最小排列是p =[1,4,2,3,5,6],因为:b1=max(p1,p......
  • CFS(一)设计理念与实现架构
    前言本文对CFS的基础的设计理念以及在内核实现上的基本代码架构进行了分析,从宏观上梳理调度和CFS的脉络。本文所有的代码基于Linux4.19。CFS的设计理念和目标CFS(CompletelyFairScheduler)完全公平调度器,从字面上看定义的很清晰,首先CFS的本质是一个调度器,所谓调度就是决定CPU......