摘要: 超喜欢这题,题意简洁,给我写爽了。 注意题目中的两种操作: 令 \(b_i\) 为 \(a\) 的队列头,并在 \(a\) 的头部弹出一个元素。 令 \(b_i\) 为 \(a\) 的队列尾,并在 \(a\) 的尾部弹出一个元素。 由于双端队列需要控制两端的位置,所以显然要使用区间 dp。简化一下分 阅读全文
posted @ 2025-08-15 21:29 swate 阅读(16) 评论(0) 推荐(0)
摘要: 挺难的,乍一看限制条件很多,难做。 试试把子问题拆解成小问题: 共有 \(1\) 种硬币。面值为 \(c_1\)。不限制使用次数,请问每次有多少种付款方法? 这样变成了裸的完全背包,直接 \(O(n)\) 解决。但是原问题怎么写啊?我也不知道啊 qwq。 满足条件的方案总数 不好求,但是 不满足条件 阅读全文
posted @ 2025-08-15 20:33 swate 阅读(7) 评论(0) 推荐(0)
摘要: 借用了这篇题解的伟大思路。 一个浅显易懂的好思路。 我们可以发现,如果位置 \(i\) 的 \(C_i\) 想要有值,那么他的左边必然存在一个与 \(a_i\) 相等的数,且颜色与 \(a_i\) 的颜色相同。设上一个与 \(a_i\) 相等的数未知为 \(last\),即 \([last+1,i- 阅读全文
posted @ 2025-08-15 19:48 swate 阅读(21) 评论(0) 推荐(0)
摘要: 构成矩形的条件是两条线段上的点纵坐标相同,即选择 \((a_i, y_1)\),\((a_i, y_2)\) 和 \((a_j, y_1), (a_j, y_2)\)。矩形的长为 \(|a_j - a_i|\),宽为 \(|y_2 - y_1|\),需满足 \(|a_j - a_i| - |y_2 阅读全文
posted @ 2025-08-15 08:14 swate 阅读(8) 评论(0) 推荐(0)
摘要: 其实这道题比 T1 简单不少。 看到题一眼 dfs,但是明显暴搜会 T 飞。赛时没有想到优化方法,用的乱搞骗分。 正解很好理解,暴搜是 \(O(2^n)\) 的,而最大范围是 \(45\),\(2^{45}\) 太大。怎么办?可以把他在中间分一半,先计算出前面部分的 \(sum\),那么总和减去后面 阅读全文
posted @ 2025-08-15 08:12 swate 阅读(3) 评论(0) 推荐(0)
摘要: 题目看完不难想到 dp。 如何设计状态呢?首先作曲的最大得分明显会根据坐标 \(x,y\) 的变化而变化,所以可以设出一个二维 \(\texttt{dp}\),令 \(dp_{i,j}\) 为前 \(i\) 个数最后为 \(j\) 时的总得分。 状态转移需要根据具体情况分类讨论: 最好推的一定是 \ 阅读全文
posted @ 2025-08-15 08:02 swate 阅读(8) 评论(0) 推荐(0)
body{ cursor: url(https://files.cnblogs.com/files/wkfvawl/cursor.ico),auto; }