摘要:
前言 记录下今天写的2个马拉车的习题 题目1 含义 给出一个字符串 s。求s 有多少对相交的回文子串。包含也算作相交。 思路 这个居然有2900有点离谱 本质上就是差分+马拉车的思想 正难则反,我们可以统计不相交的回文子串的对数,然后用总对数减去不相交的回文子串的对数即是答案 不相交的回文子串假设端 阅读全文
摘要:
含义 就是一个$O(n)$的复杂度求解最长回文子串的算法 思路 思路的话我随便说下 首先回文串可能是奇数也可能是偶数,那么对称中心就有可能是两个字符的空隙,所以先给每个字符插如一个隔板符号 '|' 第0个字符插入'~' 防止出现超出边界的问题 如abcbs -> ~|a|b|c|b|s| 设$p[i 阅读全文
摘要:
题目链接 题目思路 设$dp[i][j][k]$表示从 (1*,* 1) 走到 (i, j),一路上收集了 k 个钻石时,钻石的单价最高能涨到多少, 由于数据随机所以每个节点不会有很多 我也不知道为啥 dp的时候贪心然后使用归并排序的思路合并 代码 #include<bits/stdc++.h> u 阅读全文