2021.10.06pm

2021.10.06PM

预期 实际
A 100 30
B 10 10
C 0 0
S 110 40

全是玄学做法

A[TJOI2013] 数矩形 \(\blacktriangle\!\blacktriangledown\)

  1. 考试时口胡了一个计算几何的垃圾做法····
  2. 其实按照矩形的特殊性质就得了。这道题可以用矩形对角线长度相等且中心将对角线对半分的性质。对于每一对点存下两点之间距离与中心,按照长度为第一要素,中心位置为第二要素排序,然后暴力枚举每条边前面和它长度中心都相同的边,暴力更新答案(注意 \(double\) 会被卡,计算面积要用割补法)。
  3. 对它不会被卡的简单证明(最坏时间复杂度):
    • 最坏情况时会有\(\frac {n}{2}\) 条中心相同的边,对于这些的复杂度是 \(O(n^2)\) 左右 ,而处理其它边也是 \(O(n^2)\),所以不会被卡。

B [TJOI2013] 任务调度 \(\blacktriangle\!\blacktriangledown\!\blacktriangle\)

  1. 随机化贪心,做对的是真欧皇。
  2. 随机化还有好说的吗·········

C[TJOI2013] 赛车游戏 \(\blacktriangle\!\blacktriangledown\)

对取平均数的简单证明(可能是伪证,发现错误希望能指出,毕竟据说是拉格朗日乘数法):

  • 我们把每一段需要耗油的拎出来合在一起,在没有最大速度 vmax 的限制下,显然油耗完最优,那我们就能得到这样的式子(斜率为k):

\[\sum_{j=1}^m v[j]*s'[j]=f-\sum_{i=1}^n b*k[i]*s[i]/a\\ \sum_{j=1}^m s'[j]=\sum_{i=1}^n s[i] \]

  • 之所以左侧用的是 m 是因为每一段上升或平地也可以拆成几段赋予不同的速度。
  • 右侧均看成一个定值,所以问题转换成了下式:

\[\sum_{i=1}^n x_iy_i=f\\ \sum_{i=1}^n y_i=s\\ 求 \min{(\sum_{i=1}^n \frac {y_i}{x_i})}\\ x_i>0,y_i>0,f,s为定量 \]

【壹】两段:

\[x_1y_1+x_2y_2=f\\ y_1+y_2=s\\ 求 \min{(\frac {y_1}{x_1}+\frac {y_2}{x_2})}\\ x_1,x_2>0,y_1,y_2>0,f,s为定量 \]

一,我们分别考虑 \(y_1\)\(len(0<len<\frac{s}{2})\) 的情况:

  • \(y2=s-len\), 带回一式。

\[\begin{aligned} x_1len+x_2(s-len) & =f\\ x_2=&\frac{f-x_1len}{s-len}\\ \end{aligned} \]

  • 由于要使 \(x_2>0\) ,所以 \(f-x_1len>0,\frac{f}{len}>x_1\)

\[\begin{aligned} \frac {y_1}{x_1}+\frac {y_2}{x_2}&=\frac {y_1x_2+x_1y_2}{x_1x_2}\\ &=\frac {\frac{f-x_1len}{s-len}len+(s-len)x_1}{\frac{f-x_1len}{s-len}x_1}\\ &=\frac {(f-x_1len)len+(s-len)^2x_1}{{(f-x_1len)x_1}}\\ &=\frac {flen+((s-len)^2-len^2)x_1}{fx_1-lenx_1^2}\\ &=\frac {flen+(s-2*len)sx_1}{fx_1-lenx_1^2}\\ \end{aligned} \]

  • 求其最小值,就是求 $ \frac {fx_1-lenx_1^2}{flen+(s-2*len)sx_1} $ 的最大值

\[\begin{aligned} &设x=flen+(s-2*len)sx_1,\frac {flen+(s-2*len)fs}{len}>x>lenf\\ &则x_1=\frac {x-flen}{(s-2*len)s}\\ \end{aligned} \]

\[\begin{aligned} 原式&=\frac{\frac {(x-lenf)f}{(s-2*len)s}-(\frac {x-flen}{(s-2*len)s})^2len}{x}\\ &=\frac{(x-lenf)(s-2*len)fs-(x-lenf)^2len}{(s-2*len)^2s^2x}\\ &=\frac{1}{(s-2*len)^2s^2}\frac{(s-2*len)fsx-(s-2*len)f^2slen-lenx^2-f^2len^3+2*flen^2x}{x}\\ &=\frac{1}{(s-2*len)^2s^2}*(fs^2-2*fslen+2*flen^2-lenx-\frac {f^2s^2len-2f^2slen^2+f^2len^3}{x})\\ &=\frac{1}{(s-2*len)^2s^2}*(fs^2-2*fslen+2*flen^2-lenx-f^2len\frac {(s-len)^2}{x}) \end{aligned} \]

  • 显然 \((s-len)^2\) 为正,同时形似一个耐克函数,当\(x=f(s-len)\) 时有最小值(\(x>flen\))。代入求得:\(x_1=\frac{(s-2*len)f}{(s-2*len)s}=\frac{f}{s},x_2=\frac {f-\frac{f}{s}*len}{s-len}=\frac{f}{s}\)
  • \(x_1=x_2\),速度相同时答案一定有最小值 \(f\)

二,对于\(y_1=len=\frac{s}{2}\) 的情况:

\[(x_1+x_2)len=f\\ x_1+x_2=\frac{f}{len}\\ {\frac{len}{x_1}+\frac{len}{x_2}}=\frac{(x_1+x_2)len}{x_1*x_2}=\frac{len^2}{x_1*x_2} \]

  • 由均值不等式显然可得,\(x_1=x_2=\frac{f}{2*len}=\frac{f}{s}\) 时,答案有最小值 \(f\)

三,对于\(y_1=len>\frac{s}{2}\) 的情况:

  • \(s-len<\frac{s}{2}\),同理可得。

结论:

  • 在分成两段时,取平均速度最优,而我们按相同速度进行分段,则一段必定优于两段。

【贰】对于多段:

  • 以三段为例,由于三段可以拆成两段+一段,分成一段优于分成两段,故三段劣于两段劣于一段。
  • 数学归纳法,得证分为一段(取平均速度)最优。

【叁】后言:

  • 考试的时候肯定没有时间让你折腾这么多,根据感性理解由于求和的各项形式一致可以直接猜是平均数。

  • 感谢@ zhr2005的帮助,分类讨论 \(y_1\) 的状态是我一直没想出来的,也因此卡了半天多。可以说是他的想法成就了这篇题解。

image

\(\cal {Made} \ {by} \ {YuGe}\)

posted @ 2021-10-08 18:10  u2003  阅读(36)  评论(0)    收藏  举报