首页 > 其他分享 >2024.6.17

2024.6.17

时间:2024-10-23 17:20:36浏览次数:1  
标签:10 le 17 2024.6 后缀 线段 卷积 题面

2024.6.17

T1

题面

有一个 \(n\) 个节点的联通图给出一个 \(n\times n\) 的矩阵,其中 \(a_{i,j}\) 表示节点 \(i\) 与节点 \(j\) 之间的最短路,求原图的边权之和的最小值,如果不合法,输出 \(-1\)

\(n\le 300,1\le a\le 10^9\)

解法

我们先利用 \(floyd\) 跑一下,如果存在 \(a_{i,k}+a_{k,j}<a_{i,j}\),则不存在这样的图。
我们考虑初始时,所有点对之间都有边,并且边权等于最短路径的长度,此时构造出来的图 \(G\),一定满足要求。
我们考虑如何尽量多的去掉图 \(G\) 上的边,由于没有负权,因此如果 \(a_{i,k}+a_{k,j}=a_{i,j}\),那么 \(a_{i,j}\) 这条边就可以去掉,因为这条路是多余的。
最后剩下的边权和,就是答案。

方法

  • 贪心

T2

题面

输入两个01字符串 \(A\) 与 \(B\),求 \(A\) 中所有长为 \(|B|\) 的字串与 \(B\) 的汉明距离最小值。

汉明距离:两个相同长度字符串对应位置字符不同的数量

\(1\le|B|\le|A|\le10^6\)

解法

我们考虑算卷积,将 \(B\) 翻转并在后面加 \(0\) ,\(S\) 卷积相乘。
结果的第 \(P\) 位的值为 \(\sum_{j=0}^PB_jA_{P-j}=k\) ,对于只有 01 的串,只有 \(1\times 1=1\) ,因此 \(k\) 代表 \(B_j\) 同 \(A_{P-j}\) 中有多少位同时是 \(1\),也就是说串 \(B_0\) 到 \(B_P\),与串 \(A_P\) 到 \(A_0\) 中 \(1\) 的匹配数量。如果利用 \(FFT\) 算卷积,则是 \(\mathcal O(n\log n)\) 的 。
同样,我们将 \(0\) 换成 \(1\) ,\(1\) 换成 \(0\),再做一次卷积,这样可以求出有多少 \(0\) 和 \(0\) 是匹配的。
最后用 \(|B|\) 减去所有匹配中的最大值即可。

方法

  • 卷积

    • 卷积的两项为 \(\text{bool}\) ,乘法与 \(\operatorname{and}\) 运算等价,相当于同时为 \(1\) 的个数

    • 先反转,再卷积,相当于对应位置相乘

T3

题面

一个数轴上,小 A 可以从 \(i\) 位置跳到 \([i+1,i+z]\),每到一个点(除起点)都会花费 \(a\) 元,数轴上有 \(n\) 个特殊的点,当小 A 跳到\(c[i]\) 位置的时候会挣 \(m[i]\) 元,小 A 从 \(x\) 到 \(y\),求最后最多有多少钱

\(1\le m[i],a,z\le 10^9,1\le n\le 10^5,0\le x\le c[1]<\cdots<c[n]\le y\le 10^9\)

解法

易得方程 \(dp[i]=\max_{j<i}\{dp[j]-\lceil\dfrac{c[i]-c[j]}{z}\rceil a\}+m[i]\)

可化为 \(dp[i]=\max_{j<i}\{dp[j]+\lfloor\dfrac{c[j]}{z}\rfloor a-[c[i]\bmod z>c[j]\bmod z]a\}+m[i]-\lfloor\dfrac{c[i]}{z}\rfloor\)

此时可以对 \(c[i]\bmod z\) 分类讨论,于是用线段树优化DP可以求解,时间复杂度\(\mathcal O(n\log n)\)

方法

  • 线段树优化DP

T4

题面

给定一个字符串 \(S\)。

共 \(m\) 个询问,每次形如 i l r ,求以第 \(i\) 个位置为起点的后缀,和起点位置在 \([l,r]\) 内的所有后缀的最长公共前缀的长度,以及选到这个最优解的位置,如有多个解,求这个后缀的字典序最小。

\(1\le m,|S|\le 2\times 10^5,1\le i\le |S|,1\le 1\le r\le |S|\)

解法

后缀数组对所有后缀排序,用 ST 表维护高度高度数组,以求LCP,由于限制了 \(sa[i]\in [l,r]\),所以在拍好序的后缀上建立可持久化线段树,每次加入 \(rk[i]\) 的后缀,最后查询即可

方法

  • 后缀数组

  • ST表

  • 可持久化线段树

标签:10,le,17,2024.6,后缀,线段,卷积,题面
From: https://www.cnblogs.com/lupengheyyds/p/18497886

相关文章

  • SQL实战训练之,力扣:1709. 访问日期之间最大的空档期
    目录        一、力扣原题链接        二、题目描述        三、建表语句        四、题目分析                五、SQL解答        六、最终答案        七、验证        八、知识点一、......
  • springboot微信点餐小程序-计算机毕业设计源码93176
     目 录摘要1绪论1.1研究背景1.2 研究意义1.3微信开发者工具介绍2 系统分析2.1可行性分析2.2系统流程分析2.2.1数据新增流程2.2.2 数据删除流程2.3 系统功能分析2.4 系统用例分析3系统总体设计3.1 系统功能模块设计3.2 数据库设计......
  • 10.17
    软件构造第五次作业 一.填空题(共4题,40分)1. (填空题)功能菜单采用()组织程序的多个功能,是用户交互的一种重要形式。正确答案:(1)层次化结构2. (填空题)设计者完成任务分析并识别出任务对象和动作时,可以采用()、直接操纵、表格填充、命令语言、()交互风格。正确答案:(1)......
  • 代码随想录算法训练营day22和day23 | 77. 组合 216.组合总和III 17.电话号码的字母
    学习资料:https://programmercarl.com/回溯算法理论基础.html回溯法backtracking:for循环控制递归数量,暴力搜索:组合、切割、子集、排列、棋盘今天学了组合和切割可以画个N叉树的图来帮助理解回溯过程组合又包括1.单个数组(要加startIndex参数)或多个数组;2.数组内有无重复元素;3.数......
  • 电能表预付费系统-标准传输规范(STS)(17)
    6.4TCDUGenerationfunctions TCDU生成函数6.4.1DefinitionoftheTCDU TCDU的定义TheTCDUmaybedifferentforeachTokenCarrierTypeandisthereforedefinedseparatelyforeachphysicallayerprotocolstandardrelevanttoeachpartoftheIEC62055-5x......
  • AbMole|Erastin2(CAS号1695533-44-8;目录号M21708)
    Erastin2是一种ferroptosis铁死亡的诱导剂,是xc(-)胱氨酸/谷氨酸转运体系统的有效的选择性抑制剂。化学性质分子量623.14分子式C36H35ClN4O4CAS号1695533-44-8溶解性(25°C)DMSO90mg/mL储存条件4°C,protectfromlight运输方式冰袋运输,根据产品的不同,可能会有相应调整......
  • 2022.10.17
    练习情况P1040[NOIP2003提高组]加分二叉树区间dp,枚举区间加子树的根并记录。Code:P1040P4933大师\(O(n^2)\)的dp,枚举在\(i\)之前的\(j\)与其的公差。公差为负的情况,将所有公差加上一个正数。Code:P4933P2832行路难一眼最短路,结果假了。正解\(BFS\)加......
  • Cpp::STL—容器适配器priority_queue的讲解和模拟实现(17)
    文章目录前言一、优先级队列的使用介绍使用一道题目二、仿函数的讲解对内置类型对自定义类型三、模拟实现priority_queue两个仿函数构造函数向上调整和向下调整插入数据和删除数据其他常用接口总概一览总结前言  承接上一篇容器适配器的内容,本篇我们再来学一个......
  • 历年CSP-J初赛真题解析 | 2017年CSP-J初赛完善程序(27-36)
    学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。附上汇总贴:历年CSP-J初赛真题解析|汇总_热爱编程的通信人的博客-CSDN博客(快速幂)请完善下面的程序,该程序使用分治法求x......
  • 物理学基础精解【117】
    文章目录微积分无穷级数无穷级数的定义无穷级数的原理无穷级数的性质无穷级数的数学公式无穷级数的计算无穷级数的例子无穷级数的例题柯西判敛法基本原理应用于数列应用于函数序列应用于无穷级数局限性重要性判断级数是否收敛无穷级数收敛与发散无穷级数收敛与发散的定......