摘要: 原题链接 题解 1.判断整体是不是回文串 2.如果是,找第一个与 \(s_1\) 不同的字符 \(s_i\),如果 \(s[i+1,n]\) 是回文串,代表 \(s\) 一定长这样 \(AbAb....AbA\) 3.如果 \(A\) 的长度为一,或者 \(b\) 只出现一次,容易想到没有分割方法 阅读全文
posted @ 2024-07-18 16:51 纯粹的 阅读(22) 评论(0) 推荐(0)
摘要: 原题链接 题解 先想算法,再验证 假设最优排列,使得 \(t\) 在 s 的第 i 个位置第一次匹配,那么 i 之前的数都浪费掉了,我们可以将其收起来放到后面用 所以,最优排列一定可以是从第一个位置开始匹配 为了最大化利用数字,每右移若干个位置就要有一次匹配,而对于每一次成功匹配,最少要右移 kmp 阅读全文
posted @ 2024-07-18 11:55 纯粹的 阅读(23) 评论(0) 推荐(0)
摘要: 原题链接 题解 假如两个区间经过操作之后得到的字符串一样,说明不规则仅出现在两个区间的重合处 code #include<bits/stdc++.h> #define ll long long using namespace std; int l0[200005]={0}; int r1[20000 阅读全文
posted @ 2024-07-18 11:20 纯粹的 阅读(20) 评论(0) 推荐(0)
摘要: 原题链接 题解 1.由于是除二操作,所以最后的平均数一定能表示成 \(k_1\cdot \frac{1}{2^{i_1}}+...+k_t\cdot \frac{1}{2^{i_t}}\) 的形式 2.最小的 \(\frac{1}{2^i}\) 由于没有往下再分,所以数量一定是偶数,把他们的数量除二 阅读全文
posted @ 2024-07-18 09:29 纯粹的 阅读(12) 评论(0) 推荐(0)