首页 > 其他分享 >[NOIP2024] 编辑字符串

[NOIP2024] 编辑字符串

时间:2025-01-18 22:42:44浏览次数:1  
标签:那么 匹配 位置 编辑 这个 答案 字符串 NOIP2024

比较简单的贪心

首先按照\(t_1,t_2\)中连续的\(1\)将其分成若干段。以样例为例,\(t_1=111010\),那么第一段是\(s_1[1\sim3]\),第二段是\(s_1[5]\);\(t_2=101101\),那么第三段是\(s_2[1]\),第四段是\(s_2[3\sim4]\),第五段是\(s_2[6]\).同时统计每一段中,\(s_1(s_2)\)的\(1\)和\(0\)的数量

然后可以知道,如果对一个位置\(i\),有\(t_1[i]=t_2[i]=0\),那么答案是可以直接统计的(若\(s_1[i]=s_2[i]\)则答案加一,否则答案不变);若\(t_1[i]+t_2[i]=1\)则我们尽量匹配(比如\(t_1=1,t_2=0,s_2[i]=0\),那么考虑\(i\)所在的段剩下的\(0\)的个数,如果还有剩下的\(0\),那么将这个\(0\)与\(s_2[i]\)进行匹配,并将\(i\)所属的这个段的\(0\)的个数减一);在优先考虑完所有的\(t_1[i]+t_2[i]=1\)的位置后,再考虑\(t_1[i]+t_2[i]=2\)的位置\(i\),随意将剩下的\(0/1\)进行匹配即可

上述做法的正确性可以用决策包容性证明。简单来说,就是任意一个位置对答案的贡献只有\(1\),上面的做法,我们在分配任意一个\(0/1\)的时候,都保证了这个\(0/1\)对答案的贡献增加了一。如果我们不把这个\(0/1\)分配到这个位置,分配到其他位置的贡献也是一,等价于就放在这个位置

标签:那么,匹配,位置,编辑,这个,答案,字符串,NOIP2024
From: https://www.cnblogs.com/dingxingdi/p/18678980

相关文章

  • 用Shell检查Android字符串文件通配符
    #!/bin/sh#$1=english$2=others$3=outputif[[$3]];thendate+%F""%T"--------------------start---------------------">>$3fitimestamp=`date+%s`en_type=others_type=#获得第1个参数最后3个字符为后缀en_postfix=`echo${1:-3}`others_......
  • 用Shell检查iOS字符串文件通配符
    #!/bin/shrow_number=0cat$1|whilereadrowdoletrow_number+=1running_output="${row_number}:${row}"printf"\r%-80s""${running_output:0:80}"#echo$row#row_number=`echo$row|awk'{printNR}�......
  • [LeetCode] 1370. Increasing Decreasing String 上升下降字符串
    Youaregivenastring s.Reorderthestringusingthefollowingalgorithm:Removethe smallest characterfrom s and append ittotheresult.Removethe smallest characterfrom s thatisgreaterthanthelastappendedcharacter,and append itt......
  • 「NOIP2024」 树上查询
    update2024/12/28题目描述给定一棵树,每次询问区间\([l,r]\)的\[\max_{l\lel'\ler'\ler\landr'-l'+1\gek}\text{dep}_{\text{LCA*}(l',r')}\]引理证明先来证两个区间\(\text{LCA}\)的引理:对于\(\text{LCA}\{l,l+1,\dots......
  • 【2017-2025】Adobe Premiere Pro(简称PR)专业视频编辑软件下载
    AdobePremierePro软件简介AdobePremierePro(简称PR)是由Adobe公司开发的一款专业视频编辑软件,广泛应用于电影制作、电视播出和网络视频的制作。该软件以其强大的编辑功能和灵活的工作流程,在业界中享有盛誉。无论是专业影视制作人还是业余爱好者,PremierePro都能满足他们的......
  • leetcode——分割两个字符串得到一个回文字符串(java)
    给你两个字符串a和b,它们长度相同。请你选择一个下标,将两个字符串都在相同的下标分割开。由a可以得到两个字符串:aprefix和asuffix,满足a=aprefix+asuffix,同理,由b可以得到两个字符串bprefix和bsuffix,满足b=bprefix+bsuffix。请你判断aprefix+bsu......
  • Adobe AU(Audition)专业音频编辑软件下载安装(附win/mac安装包)
    AdobeAU软件简介AdobeAU(Audition)是由Adobe公司开发的专业音频编辑软件,广泛用于音频录制、编辑、混音和恢复等工作。软件的设计旨在为音乐制作人、广播制作人、视频编辑师及音频行业的其他专业人士提供全方位的音频后期处理解决方案。随着数字音频技术的发展,AdobeAU的软件......
  • 【LeetCode: 415. 字符串相加 + 双指针】
    ......
  • 科普文:算法和数据结构系列【高效的字符串检索结构:字典树Trie树原理、应用及其java示例
    概叙科普文:算法和数据结构系列【算法和数据结构概叙】-CSDN博客科普文:算法和数据结构系列【非线性数据结构:树Tree和堆Heap的原理、应用、以及java实现】-CSDN博客科普文:算法和数据结构系列【树:4叉树、N叉树】_动态维护四叉树-CSDN博客科普文:算法和数据结构系列【二叉树总结......
  • 459. 重复的子字符串
    题目这道题不会,看了卡哥思路,卡哥提供了三种方法。方法一:暴力解法自己写的代码:classSolution{public:boolrepeatedSubstringPattern(strings){intn=s.size();for(intlen=1;len<=n/2;++len){if(n%len!=0......