摘要:
"题目" 运用数学知识递推。定义$DP[i][j][k]$为前i行内选择j个列只有一个炮,k列只有两个炮的放置方案总数。 因为如果有一列或者一行的炮大于等于三时,必会有一个炮会被攻击到,所以可以用一个和两个来区分,方便递推。这样可以使的列里面的炮不会大于等于三,然后考虑行,这一行内只能放两个或一个, 阅读全文
摘要:
"题目" 线段树。一开始以为是考查lazy数组的变化。然而并不是。 等差数列的性质是相邻的数的差相等,给一段数加上一段相邻的差相等的数列,会发现他们之间的差也会增加,而且相邻的数差增加的是一致的,又因为是单点查询一个数,相当于区间查询差分数组,因此可以用线段树区间修改差分数组,区间查询差分数组。 阅读全文
摘要:
"题目" 搜索+剪枝 对于每个操作都只需要模拟就可轻松得出每一步操作的代码。 这个题需要考虑回溯操作,由于搜索是在一棵搜索树中,因此我们可以记录每一个深度的回溯状态,仅仅用一个数组会出现状态转移失误的情况,所以需要用多个数组。然后考虑剪枝,如果交换不交换没有区别,则不需要交换,而且i向左交换等同于i 阅读全文
摘要:
"题目" 如果没有氮气加速器,则该题为一个模拟题。 但是本题存在氮气加速器,所以我们需要考虑贪心策略。 题目要求我们使所有人等待的时间最短,因此我们需要算出每段路径(路径即为车站之间的$D$)对时间的贡献多少,取其中最多的减去就好了。首先我们需要求出每个车站最远向右影响到什么地方,然后算出这段地方的 阅读全文