秋末的落叶 题解

传送门:https://www.luogu.com.cn/problem/U121886

Part 1:疏通题意

首先,我们从题意和样例解释中很容易提取到以下信息:

\(1、\)本题是一个图论题,\(maple[i]\)是第\(i\)个节点的点权,违和感则可以抽象成无向边的边权

\(2、\)如果一条边连接的两个端点都在所选中的子图中,那么这条边也必须在子图中

\(3、\)题目所求:找到一个连通子图使得点权和除以边权和最大(在以下数学证明中,我们用\(t\)表示这个值)

Part 2:数学证明

首先已经告诉大家这是一个贪心题那就大大降低了这个题的难度

我们的任务简化为:找到一个贪心的办法(好像没啥实质性变化)

首先考虑图的两种基本形态:环状和链状

我们看看,环状的子图和链状的子图中,可不可以证明其中一种一定比另一种更优,这样我们的检索范围就会大大减小

灵魂画师请见谅

开始证明:

那么在这个简单环中,我们设置以下四个变量来表示环和链的\(t\)值

用\(t_{abc}\)来表示环的\(t\)值,有\(t_{abc}=\frac{a+b+c}{x+y+z}\)

用\(t_{ab}\)表示两节点链\(ab\)的\(t\)值,有\(t_{ab}=\frac{a+b}{x}\)

用\(t_{bc}\)表示两节点链\(bc\)的\(t\)值,有\(t_{bc}=\frac{b+c}{y}\)

用\(t_{ac}\)表示两节点链链\(ac\)的\(t\)值,有\(t_{ac}=\frac{a+c}{z}\)

首先,不妨设\(t_{ab}\geq t_{bc}\geq t_{ac}\),(PS:如果不满足,交换顺序即可,不影响证明的正确性)

那么化简\(t_{ab},t_{bc},t_{ac}\)得到了一个包含三个不等式的不等式组:

\(
\begin{cases}
ay+by\geq bx+cx\\
bz+cz\geq ay+cy\\
az+bz\geq ax+cx\\
\end{cases}
\)

因为 \(t_{ab}\geq t_{bc}\geq t_{ac}\),只需要证明\(t_{ab}>t_{abc}\),即可说明每一个环本身中,至少存在一个两节点链比这个环更优

左式:\(t_{ab}=\frac{a+b}{x}\),右式:\(t_{abc}=\frac{a+b+c}{x+y+z}\)

\(1、\)同时乘以:\(x(x+y+z)\) 左式:\((a+b)(x+y+z)\),右式:\(x(a+b+c)\)

\(2、\)同时减去:\(x(a+b)\) 左式:\((y+z)(a+b)\),右式:\(cx\)

\(3、\)化简一步:左式:\(ay+by+az+bz\),右式:\(cx\)

\(4、\)根据上面推出的不等式组:\(ay+by+az+bz\geq bx+cx+ax+cx=2cx+ax+bx\)

\(5、\)又因为:\(a、b、c、x、y、z\)均为正数,所以:\(2cx+ax+bx>cx\)

\(6、\)推出:左式\(>\)右式,即\(t_{ab}>t_{abc}\)

综上所述:每一个环本身中,至少存在一个两节点链比这个环更优

证毕

那么得到了这样一个结果——每一个环本身中,至少存在一个两节点链比这个环更优。现在,我们就不用考虑环的情况了

既然我们可以证明环和链之间的大小关系,进一步思考:链和链之间的大小关系可不可以证明呢?

让我们从最短的链证起,请看图:

开始证明:

在这个三个节点组成的链中,我们设置以下三个变量来表示两个短链和一个长链的\(t\)值

用\(t_{abc}\)表示长链的\(t\)值,有\(t_{abc}=\frac{a+b+c}{x+y}\)

用\(t_{ab}\)表示短链\(ab\)的\(t\)值,有\(t_{ab}=\frac{a+b}{x}\)

用\(t_{bc}\)表示短链\(bc\)的\(t\)值,有\(t_{bc}=\frac{b+c}{y}\)

首先,不妨设:\(t_{ab}\geq t_{bc}\)(PS:如果不满足,依旧交换即可,不影响证明的正确性)

那么化简这个式子,得到一个不等式:\(ay+by\geq bx+cx\)

因为:\(t_{ab}\geq t_{bc}\),只需证\(t_{ab}>t_{abc}\),即可说明在任意一三节点个长链本身中,至少存在一个两节点短链比这个长链更优

左式:\(t_{ab}=\frac{a+b}{x}\),右式:\(t_{abc}=\frac{a+b+c}{x+y}\)

\(1、\)同时乘以:\(x(x+y)\) 左式:\((a+b)(x+y)\),右式:\(x(a+b+c)\)

\(2、\)同时减去:\(x(a+b)\) 左式:\(y(a+b)\),右式:\(cx\)

\(3、\)化简一步:左式:\(ay+by\),右式:\(cx\)

\(4、\)根据上面推出的不等式:\(ay+by\geq bx+cx\),且\(x、y、a、b、c\)均为正数,有\(bx>0\),所以推出\(ay+by>cx\)

\(5、\)推出:左式\(>\)右式,即\(t_{ab}>t_{abc}\)

综上所述:在任意一三节点个长链本身中,至少存在一个两节点短链比这个长链更优

(PS:感谢XMZ帮助我整理证明过程Orz)

但是还没有完,我们还需要得知长度为\(n\)的链和长度为\(2\)的链谁更优一些

\(n\)个节点链可以看成是\(n-1\)节点链和\(n\)节点链进行比较,而\(n-1\)又可以看成\(n-2\)节点链和\(n-1\)节点链比较

像上面这样一直进行递推下去,问题就又转化成了:三节点链和两节点链哪个更优这个问题,所以上面的证明方法对于无限长的链也都适用

根据沃兹基·施沃德(我自己说的)法则(应该是数学归纳法)可以把上面的证明推广到下面这个形式:

对于任意长度链,都在它本身中至少存在一个两节点链比它更优

证毕

Part 3:贪心思路

有了上面那么冗长的证明,我们终于归纳出了一个简单的结果:

答案一定是一个两节点构成的链

所以我们的贪心思路就是:找到一个\(t\)值最大的两节点链\(ab\)

妙啊!——zay

所以我们需要一个\(val\)数组,存放点权,每次输入三元组的时候,计算这个两节点链的\(t\)值,维护一个\(maxn\)最大即可

Part 4:代码实现

这个小学生都会吧……(所以这题是红题)

#include<bits/stdc++.h>
using namespace std;
double maxn,value[505];
int n,m;
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%lf",&value[i]);
for(int i=1,a,b;i<=m;i++){
double c;
scanf("%d%d%lf",&a,&b,&c);
double k=(value[a]+value[b])/c;
if(k>maxn) maxn=k;
}
printf("%.3lf\n",maxn);
return 0;
}

校内测试:T1秋末的落叶(命题人gxl)官方题解的更多相关文章

  1. 2019.7.9 校内测试 T1挖地雷

    这一次是交流测试?边交流边测试(滑稽 挖地雷 这个题是一个递推问题. 首先我们看第一个格子,因为它只影响了它的上面和右上面这两个地方是否有雷. 我们可以分3种情况讨论: 1. 第一个格子的数字是2: ...

  2. 18清明校内测试T1

    消失的数字(number) Time Limit:1000ms   Memory Limit:128MB 题目描述 rsy拥有n个数,这n个数分别是a1,a2,…,an. 后来出现了一个熊孩子zhw, ...

  3. 2019.6.28 校内测试 T1 Jelly的难题1

    这题面有点难理解,建议直接跳到题意解释那一部分(虽然我觉得解释的不大对,但按照解释来做确实能AC): 按照“题意解释”的思路来思考这个题,那么就十分的简单了: 1.首先要读入这个字符矩阵,可以用cin ...

  4. 【8.30校内测试】【找规律模拟】【DP】【二分+贪心】

    对于和规律或者数学有关的题真的束手无策啊QAQ 首先发现两个性质: 1.不管中间怎么碰撞,所有蚂蚁的相对位置不会改变,即后面的蚂蚁不会超过前面的蚂蚁或者落后更后面的蚂蚁. 2.因为所有蚂蚁速度一样,不 ...

  5. 【11.8校内测试】【倒计时2天】【状压DP】【随机化?/暴力小模拟】

    Solution 数据范围疯狂暗示状压,可是一开始发现状态特别难受. 将每一层的奇偶性状压,预处理所有状态的奇偶性.每一层的输入代表的其实可以是下一层某个点可以被从这一层哪些点转移到. 所以枚举每个状 ...

  6. 【10.17校内测试】【二进制数位DP】【博弈论/预处理】【玄学(?)DP】

    Solution 几乎是秒想到的水题叻! 异或很容易想到每一位单独做贡献,所以我们需要统计的是区间内每一位上做的贡献,就是统计区间内每一位是1的数的数量. 所以就写数位dp辣!(昨天才做了数字统计不要 ...

  7. 【10.11校内测试】【优先队列(反悔贪心)】【莫队】【stl的应用??离线处理+二分】

    上次做过类似的题,原来这道还要简单些?? 上次那道题是每天可以同时买进卖出,所以用两个优先队列,一个存买进,一个存卖出(供反悔的队列). 这道题实际上用一个就够了???但是不好理解!! 所以我还是用了 ...

  8. 【10.7校内测试】【队列滑窗】【2-sat】【贪心+栈二分+线段树(noip模拟好题)】【生日祭!】

    比较好想的一道题,直接用队列滑窗,因为扫一遍往队列里加东西时,改变的只有一个值,开桶储存好就行了! #include<bits/stdc++.h> using namespace std; ...

  9. 【10.5校内测试】【DP】【概率】

    转移都很明显的一道DP题.按照不优化的思路,定义状态$dp[i][j][0/1]$表示吃到第$i$天,当前胃容量为$j$,前一天吃(1)或不吃(0)时能够得到的最大价值. 因为有一个两天不吃可以复原容 ...

随机推荐

  1. three.js 数学方法之Box3

    从今天开始郭先生就会说一下three.js 的一些数学方法了,像Box3.Plane.Vector3.Matrix3.Matrix4当然还有欧拉角和四元数.今天说一说three.js的Box3方法(B ...

  2. 6.ALOHA协议

    动态媒体接入控制/多点接入特点:信道并非在用户通信时固定分配给用户. 一.纯ALOHA协议 纯 ALOHA协议思想:不监听信道,不按时间槽发送,随机重发.想发就发 二.时隙ALOHA协议 时隙 ALO ...

  3. p70_域名解析系统DNS

    一.DNS作用 二.域名 www.cskaoyan.com. www 三级域名 cskaoyan 二级域名 com 顶级域名 三.域名服务器 根域名服务器:知道所有顶级域名服务器的域名和ip地址 顶级 ...

  4. Windows10系统,截图黑屏,怎么办?

    问题:Windows10系统,截图黑屏,怎么办? 图片描述: 原因:也许有  媒体播放软件和系统(或者正在使用的截图软件)起了冲突. 我就开了个这个软件,就完蛋了. 导致了  系统自带的  这两个截图 ...

  5. Thinkphp5-0-X远程代码执行漏洞分析(2019-1-11)

    周五下午爆洞能不能让人们好好休个周末! 分析过程 本次漏洞关键位置:/thinkphp/library/think/Request.php,lines:501由图可以看到在method函数中引入了可控 ...

  6. 虚拟机 NAT 网络静态ip配置记录

    环境 VMware 15.5.5 build-16285975 centos7 虚拟网络编辑器配置 位置 编辑 --> 虚拟网络编辑器 示例 以下以 192.168.18.0 网段ip为例,实际 ...

  7. 03_Linux定制篇

    第十四章 JAVAEE定制篇 搭建JAVAEE环境 14.1 安装JDK 1)先将软件通过xftp5上传到/opt下 2)解压缩到/opt 3)配置环境变量的配置文件vim/etc/profile J ...

  8. 二手99新iPhone8Plus有锁移动联通版

    原文是维基百科:http://www.bosimedia.com/wiki/IPhone_8#cite_note-1 iPhone8Plus详细介绍 iPhone 8与iPhone 8 Plus 是苹 ...

  9. Python os.fchdir() 方法

    概述 os.fchdir() 方法通过文件描述符改变当前工作目录.高佣联盟 www.cgewang.com Unix, Windows 上可用. 语法 fchdir()方法语法格式如下: os.fch ...

  10. PHP strftime() 函数

    ------------恢复内容开始------------ 实例 根据区域设置格式化本地日期和时间: <?php echo(strftime("%B %d %Y, %X %Z&quo ...