上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页
摘要: 题目给定的是边权,不好处理,考虑把它转化为点权。具体地,在 dfs 的过程中,把边权当做子节点的点权即可,效果是一样的。接下来都以点权代替边权。 首先存在一个事实,任何一个点都不会经过 \(3\) 次或以上。从根节点向下遍历,从子节点向上回溯,一定会先遍历完一棵子树内的点,再去走另一棵子树内的点,因 阅读全文
posted @ 2025-09-08 18:34 FormulaOne 阅读(61) 评论(0) 推荐(0)
摘要: 有一个显然的贪心,即每次都取剩余权值和最大的一条路径。由于每个点的权值都只计算一次,因此这样做能够确保前 \(k\) 次得到的答案最大。假如不取大的而先取小的,那么答案一定不会优于前者(大的可能没取到),从而保证了贪心的正确性。 接下来考虑如何维护最大值。每一次求出最大值后,同时记录最大值对应的点的 阅读全文
posted @ 2025-09-08 18:33 FormulaOne 阅读(16) 评论(0) 推荐(0)
摘要: 首先我们要对 \(\sum_{i=1}^W \sum_{j=i+1}^W \min(c_i,c_j)\) 进行化简。具体地,一个 \(c_i\) 会产生贡献,当且仅当存在一个 \(c_j\) 满足 \(c_j \ge c_i\)。设这样的 \(j\) 的个数为 \(d\) 个,那么所产生的贡献为 \ 阅读全文
posted @ 2025-09-08 18:33 FormulaOne 阅读(20) 评论(0) 推荐(0)
摘要: 首先注意到题目给定的矩形以及要求的子矩形的顶点坐标均为整数,且每条边都平行于一条坐标轴。可以得知无需考虑矩形旋转一定角度的情况,接下来就不难了。 一个子矩形要把所有点覆盖,则只需要把最小、最大的横、纵坐标覆盖即可(显然,其他横、纵坐标在两者之间,因此一定能覆盖)。在此基础上,每条边可以向外延伸一定长 阅读全文
posted @ 2025-09-08 18:32 FormulaOne 阅读(11) 评论(0) 推荐(0)
摘要: 一道不错的题。 首先观察这棵树,得到以下事实: \(1\) 为树根。 树上的边是由父亲连向儿子的有向边。 除 \(1\) 以外的节点都有一条连向 \(1\) 的有向边。 边权为正。 可知任意两点间都存在最短路,且这条最短路是不难求的。假设要求从 \(u\) 到 \(v\) 的最短路,设 \(dis1 阅读全文
posted @ 2025-09-08 18:32 FormulaOne 阅读(26) 评论(0) 推荐(0)
摘要: 还剩半个小时才开始打入门赛,结果最后一题就差几分钟,恼火。 这是一道模拟题,因此我们要仔细梳理题目给的大量信息。通俗地理解,给定若干个表格,每个表格包含一行表头和若干组信息,并且有若干次询问,每次询问指定一个表格的一个关键字的内容,寻找该表格中对应关键字内容相同的信息,并输出另外指定的关键字的内容。 阅读全文
posted @ 2025-09-08 18:31 FormulaOne 阅读(17) 评论(0) 推荐(0)
摘要: 看到 \(\sum \limits_{i=1}^n a_i \le 10^9\),可以很快发现不同的 \(a_i\) 大约只有 \(42000\) 个。设去重后的 \(a_i\) 为 \(k\) 个,则不难得到一个 \(O(k^2)\) 的做法,可以获得 \(70\) 分。 for( int i = 阅读全文
posted @ 2025-09-08 18:31 FormulaOne 阅读(15) 评论(0) 推荐(0)
摘要: 模拟赛场切了,发篇题解纪念一下。 首先对题目中的不等式移项,得到 \(p \ge h_j + \sqrt{|i-j|} - h_i\)。对于右边部分的式子,\(h_i\) 是确定的,因此只需求出 \(h_j + \sqrt{|i-j|}\) 的最大值即可(也就是要求的最小高度)。 观察式子,发现 \ 阅读全文
posted @ 2025-09-08 18:30 FormulaOne 阅读(18) 评论(0) 推荐(0)
摘要: 虽然本题打着线段树的标签,但 \(10^5\) 的数据范围令我想到了简单粗暴的分块。 操作 \(1\) 首先考虑暴力判断并修改每个位置的值,然而这样做会被卡到 \(O(nm)\)。但实际上,需要修改的位置可能不多,也就是会做大量的无用判断。这个时候,我们就可以充分利用分块的特性,记录每个块内 \(a 阅读全文
posted @ 2025-09-08 18:30 FormulaOne 阅读(24) 评论(0) 推荐(0)
摘要: 首先有一个显然的结论,即若可以分成超过 \(2\) 个序列,则一定可以分成 \(2\) 个序列。如样例中的第二组数据,可以直接分成 \(\{1,1,1,9 \}\) 和 \(\{8,0\}\)。严谨证明留给读者思考。 有了上面这个结论后,就转化为判断是否能够分成两个序列。注意到极差只与最大值与最小值 阅读全文
posted @ 2024-05-18 17:32 FormulaOne 阅读(41) 评论(0) 推荐(0)
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 16 下一页