测试页
本文最后更新于:2025年1月11日 下午 12:44
测试
年轻人的第一个博客!
fluid 折叠测试:
文字 或者 markdown
均可
Details 折叠测试:
点击展开
这是一个折叠的内容
这是一个折叠的内容
do something
斜率优化模板题
\(\texttt{Description}\)
打印一篇有 \(N\) 个字的文章,每个字i的打印成本是 \(C_i\)。
此外,在一行中打印 \(k\) 个字将花费: \((\sum\limits_{i=1}^{k} C_i)^2 + M\)。
\(M\) 是一个常数。你的任务是找到一种最佳的打印方式,使得总的打印成本最小。
\(\texttt{Input}\)
有很多测试用例。
对于每个测试用例,第一行有两个数字\(N\)和\(M\)(0 ≤ n ≤ 500000,0 ≤ M ≤ 1000)。
然后,下面的第\(2\)到第\(N + 1\)行有N个数字。输入以\(EOF\)结束。
\(\texttt{Output}\)
对于每个测试用例,输出一个整数,表示最小的打印成本。
题解
设 \(dp[i]\) 为前 \(i\) 个单词的最低成本,\(sum[i]\) 为前缀和。
\[ \begin{align*} \because dp[i] &= \min(dp[j] + (sum[i] - sum[j])^2 + M) \\ &= \min(dp[j] + sum[i]^2 - 2 \times sum[i] \times sum[j] + sum[j]^2 + M) \\ \therefore(dp[i] - sum[i]^2) &= \min(dp[j] + sum[j]^2 - 2 \times sum[i] \times sum[j]) + M \\ &= (dp[j] + sum[j]^2) - (2 \times sum[i] \times sum[j]) + M \\ \therefore(dp[j] + sum[j]^2) &= (2 \times sum[i] \times sum[j]) + (dp[i] - sum[i]^2) - M \\ \end{align*} \]
\[ 设~ y = dp[j] + sum[j]^2,~ x = sum[j],~ k = 2 \times sum[i],~ b = dp[i] - sum[i]^2 - m,~则有: \]
\[ y=kx+b \]
\(x=sum[j]\) 和 \(k=2\times sum[i]\) 都是单调不减,满足斜率优化的要求。
1 |
|
绘图测试:
6 <script>7 if (!window.MathJax) {8 window.MathJax = {9 tex : {10 inlineMath: { '[+]': [['$', '$']] }11 },12 loader : {13 ${ lazy ? 'load: \[\'ui/lazy\'\]' : '' }14 },15 options: {16 renderActions: {17 insertedScript: [200, () => {18 document.querySelectorAll('mjx-container').forEach(node => {19 let target = node.parentNode;20 if (target.nodeName.toLowerCase() === 'li') {21 target.parentNode.classList.add('has-jax');22 }23 });24 }, '', false]25 },26 lazyAlwaysTypeset: (function() {27 // 检查页面上是否存在 'mydetails' 元素28 if (!document.querySelector('mydetails')) {29 return null; // 如果不存在,返回 null30 } else {31 return ['mydetails']; // 如果存在,返回包含 'mydetails' 的数组32 }33 // 如果你直接给一个列表,那么如果页面上不存在这个元素,MathJax 将会崩溃34 })(),35 }36 };37 } else {38 MathJax.startup.document.state(0);39 MathJax.texReset();40 MathJax.typeset();41 MathJax.typesetPromise();42 }4344 Fluid.events.registerRefreshCallback(function() {45 if ('MathJax' in window && MathJax.startup.document && typeof MathJax.startup.document.state === 'function') {46 MathJax.startup.document.state(0);47 MathJax.texReset();48 MathJax.typeset();49 MathJax.typesetPromise();50 }51 });52 </script>53
)5455
import_js(theme.static_prefix.mathjax.replace('es5/', ''),
'es5/tex-mml-chtml.js')56 %>5758<% } else if
(theme.post.math.engine === 'katex') { %>59 <%
import_css(theme.static_prefix.katex, 'katex.min.css') %>60<% }
%>ejs
嵌入 Draw.io SVG 浏览器测试:
会导致 MathJax 崩溃,暂时不使用。。
MathJax 测试
\[ \begin{align} \frac{1}{2} + \frac{1}{3} &= \frac{5}{6} \\ \frac{1}{2} + \frac{1}{3} &= \frac{5}{6} \\ \end{align} \]
\[ The\ quick\ brown\ fox\ jumps\ over\ the\ lazy\ dog. \]