2021.10.06pm
2021.10.06PM
| 预期 | 实际 | |
|---|---|---|
| A | 100 | 30 |
| B | 10 | 10 |
| C | 0 | 0 |
| S | 110 | 40 |
全是玄学做法
A[TJOI2013] 数矩形 \(\blacktriangle\!\blacktriangledown\)
- 考试时口胡了一个计算几何的垃圾做法····
- 其实按照矩形的特殊性质就得了。这道题可以用矩形对角线长度相等且中心将对角线对半分的性质。对于每一对点存下两点之间距离与中心,按照长度为第一要素,中心位置为第二要素排序,然后暴力枚举每条边前面和它长度中心都相同的边,暴力更新答案(注意 \(double\) 会被卡,计算面积要用割补法)。
- 对它不会被卡的简单证明(最坏时间复杂度):
- 最坏情况时会有\(\frac {n}{2}\) 条中心相同的边,对于这些的复杂度是 \(O(n^2)\) 左右 ,而处理其它边也是 \(O(n^2)\),所以不会被卡。
B [TJOI2013] 任务调度 \(\blacktriangle\!\blacktriangledown\!\blacktriangle\)
- 随机化贪心,做对的是真欧皇。
- 随机化还有好说的吗·········
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\) 的状态是我一直没想出来的,也因此卡了半天多。可以说是他的想法成就了这篇题解。

\(\cal {Made} \ {by} \ {YuGe}\)
浙公网安备 33010602011771号