P10280 Cowreography G

news/2024/9/30 21:14:28

P10280 Cowreography G

贪心

本题的证明中涵盖了多种证明方法:分类讨论,交换两个,整体策略,堪称贪心证明之典范

符号约定

\(s_x\) 表示最初字符串的不同 \(1\) 位置,\(t_x\) 表示最终字符串的不同 \(1\) 位置

Theorem1:

交换 \(a_i,a_j(i>j,a_i\ne a_j)\) 的最优步数为 \(\lceil\frac{i-j}{k}\rceil\)

Prove:

\(i\) 交换到 \(j\) 的最优步数一定不会低于 \(\lceil\frac{i-j}{k}\rceil\)

  • \(i-j\le k\) 此式显然成立。

  • \(i-j>k\)

    • \(a_{i+k}\neq a_{i}\) 时,可以先交换 \(a_i\)\(a_{i+k}\),再交换 \(a_{i+k}\)\(a_{j}\)

    • \(a_{i+k}=a_i\) 时,可以先交换 \(a_{i+k},a_j\),再交换 \(a_i\)\(a_{i+k}\)

    所以假设 \(i-j=t\) 成立则 \(i-j=t+k\) 成立。

由数学归纳可得,该引理成立。

Lemma1

\(s_1\le t_1\le s_2\le t_2\) ,则 \(s_1\)\(t_1\) 交换,\(s_2\)\(t_2\) 交换不劣于 \(s_1\)\(t_2\) 交换,\(s_2\)\(t_1\) 交换。

Prove

\(s_1=a,t_1=a+b,s_2=a+b+c,t_2=a+b+c+d,a,b,c,d\)

\[\def\dis#1#2{\lceil\frac{#1-#2}{k}\rceil} \def\val#1{\lceil\frac{#1}{k}\rceil} \def\down#1{\lfloor-\frac{#1}{k}\rfloor} \def\flow#1{\{-\frac{#1}{k}\}} \begin{aligned} &要证:\dis{t_1}{s_1}+\dis {t_2}{s_2}\le \dis{s_2}{t_1}+\dis{t_2}{s_1}\\ &即证:\val{b}+\val{d}\le\val{c}+\val{b+c+d}\\&即证:\down{b+c+d}+\down c\le \down b+\down d\\ &即证:\flow{b+c+d}-2\frac ck\le \flow b+\flow d\\ &即证:\flow c-2\frac ck\le [b+c+d\le -k]+[b+c+d\le -2k]\\ &\because \flow c-2\frac ck\le 0,[b+c+d\le -k]+[b+c+d\le -2k]\ge 0\\ &\therefore 此式成立,且上述过程步步可逆,原命题成立 \end{aligned} \]

Lemma2

\(s_1\le t_1\le t_2\le s_2\) ,则 \(s_1\)\(t_1\) 交换,\(s_2\)\(t_2\) 交换优于 \(s_1\)\(t_2\) 交换,\(s_2\)\(t_1\) 交换。

Prove

\(s_1=a,t_1=a+b,t_2=a+b+c,s_2=a+b+c+d,a,b,c,d\)

\[\begin{aligned} &要证:\dis{t_1}{s_1}+\dis {s_2}{t_2}\le \dis{s_2}{t_1}+\dis{t_2}{s_1}\\ &即证:\val{b}+\val{d}\le\val{c+d}+\val{b+c}\\ &\therefore 此式显然成立,且上述过程步步可逆,原命题成立\end{aligned} \]

Theorem2

最优的选取方案一定可以划分为若干段,使得对于每一段来说, \(\max s\le \min t\lor \max t\le\min s\)

Prove

由 Lemma1 与 Lemma 2 易得。

Theorem3:

贪心策略:对于每个 \(s\)\(t\),找到前面第一个模 \(k\) 的余数比他大的数进行匹配。

Prove

对于划分的每一段,令 \(p(i)\) 是这一段的下标的一个排列。假设 \(s\le t\)\(s>t\) 同理可证)。

则:\(ans=\sum_i \left\lceil \dfrac{t_{p(i)} - s_i}{k} \right\rceil = - \sum_i \left\lfloor \dfrac{s_i - t_{p(i)}}{k} \right\rfloor\)

令:\(x_i=\frac {s_i} k,y_i=-\frac {t_i}k\)

\[\sum_i \lfloor x_i+y_{p(i)} \rfloor = \sum_i x_i + \sum_i y_i - \sum_i \{x_i + y_{p(i)}\} \]

于是需要最小化 \(\sum_{i}\{x_i+y_{p(i)}\}\)

\(x_i'=\{x_i\},y_i'=\{y_i\}\)

\[\sum_i \{x_i + y_{p(i)}\} = \sum_i x_i' + \sum_i y_i' - \sum_i [x_i' + y_{p(i)}' \ge 1] \]

于是需要最大化 \(\sum_{i}[x_i'+y_{p(i)}']\ge 1\)

\[\begin{aligned}\sum_i [x_i' + y_{p(i)}' \ge 1] &= \sum_i \left[ \dfrac{s_i}{k} \bmod 1 + \left(-\dfrac{t_{p(i)}}{k}\right) \bmod 1 \ge 1 \right] \\ &= \sum_i \left[ s_i \bmod k + (-t_{p(i)}) \bmod k \ge k \right]\\&=\sum_i[s_i\bmod k\ge t_{p(i)}\bmod k]\end{aligned} \]

显然,用原命题的贪心策略可以是这个式子最大。

\(\square\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/66637.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

[初中]我学不好语文,还能学好道法吗?

可以 首先放出我在同时期(八下期末)的语文和道法答题卡:看出来了吧,我的字不行 我觉得,道法像是“简单版”的语文 它也有答题模板,但使用的方法差异极大: 在道法中有一种口号类的题目,模板是做法+意义,这时只需根据材料内容,结合所学知识,默写出相关“为什么类”知识…

黄金

黄金这波涨势 要看3-5是否走完

『模拟赛』CSP-S模拟7(更新 T4

『模拟赛记录』CSP-S模拟5Rank 烂A. median 签。 你说得对,但是赛时嗯打 150 行 5k 代码超级分讨过了。 因为容斥做的不好,求总的然后减总会差点东西,所以直接分着加。发现如果中位数在这五个数中不止出现一次那么就会算重,所以分三种大情况考虑。 一,中位数只有一个。那么…

微积分快速入门5部分:基本算术、规律及花式算术

12 微积分的基本算术 12.1 加法12.2 乘法12.3 简单除法(倒数)你们原来的份额是 1/x(当 x=2 时,你有 1/2)。 有人进来 你的新份额变成1/(x+1)你的蛋糕数量是如何变化的?在求出总变化(及其恼人的代数)后,我们除以 dx,就得到了 “每 dx ”的变化:现在,我们去掉剩余的 d…

pbootcms常用的13个IF判断语句大全汇总

PBootCMS 提供了丰富的模板标签和条件判断功能,帮助开发者实现各种动态效果。以下是常用的 13 个 IF 判断语句及其具体应用示例。 1. 导航高亮 用途: 用于非首页的导航高亮。 语法:html{pboot:if([nav:scode]=={sort:tcode})}class="active"{/pboot:if}完整示例:…

残基和原子

从您提供的 aa_feature 类的截图信息来看,以下是对 aa_feature 类中各个属性的整理: 主要属性说明aa_embedding:residue_embedding: 一个嵌入层,形状为 (25, 64),用于表示氨基酸残基的嵌入。 res_pos_embedding: 一个嵌入层,形状为 (192, 64),用于表示氨基酸残基的位置嵌…

Windows下安装Nessus 10.8.3安装破解教程

1、下载: 下载地址:https://www.tenable.com/downloads/nessus 浏览器访问 https://127.0.0.1:8834 重点:Register offline,选择“Managed Scanner”, 再选择 “Tenable security center”,最后一步设置账号密码,账号密码没要求。 ​​ 2、获取插件包 2.1在命令行模式下(…