摘要:
## 思路 首先我们可以肯定的是,无论如何变化,答案最多比原序列的连续 $T$ 的个数多 $2$。 理由很简单,对于 $...BT...TB...$,最好的可能就是前后两个 $B$ 可以变成 $T$,因为只可能是 $BTTB$ 变成 $TBBT$,所以变了以后再外面就一定是 $B$ 了,且无法再变。 阅读全文
摘要:
## 思路 ### Step0.骗分 显然,题目中的 $c_1,c_2$ 就是为了送分,如果比赛中没有思路,倒是可以直接输出两个 $0$ 先得到 $2$ 分,聊胜于无。 ### Step1.暴力不出奇迹 显然第一个想到的是暴力,枚举 $k$,容易观察得出,若一次增加 $k$ 而 LCS 不变,则再增 阅读全文
摘要:
## 思路 刚看到还被吓了一跳,以为又是什么神仙题目,细想了一下觉得有做头。 ### Step1.不算很好的解法 首先想到左下一个右上一个,就可以套一圈,然后就可以先套一个正方形出来,这个正方形可以尽可能的大,如下图的红色框。 ![](https://cdn.luogu.com.cn/upload/ 阅读全文
摘要:
## 思路 易发现,如果 $i$ 和 $j$ 可以连边,$j$ 和 $k$ 可以连边,那 $i$ 和 $k$ 也可以连边,如果 $x$ 不能和 $i$ 连边,那 $x$ 同样不能和 $j,k$ 连边。所以我们可以考虑把所有可以连边的放在一起,这样就把所有点分成了若干部分,并且每个部分不可能连边,必然 阅读全文
摘要:
## 思路 首先发现应该优先除,理由很简单,如果先乘以 $k$ 再加上一个不超过 $k$ 的值,那么除以 $k$ 后,就除回去了,没有发生任何变化。 所以我们可以先枚举除以多少次 $k$,得到除以这么多次 $k$ 后的 $n$。我们再进行若干次乘法,计算 $n$ 的取值范围 $[l,r]$,那么只要 阅读全文
摘要:
## 思路 大概是这场比赛最水的题目? 一共只有三个骰子,每个骰子有 $6$ 面,所以总共是 $6^3=216$ 种情况,不用多说,直接暴力。 就是判断是红色还是黑色有点麻烦,可以数组存,写出来代码稍微好看些。 ## AC 代码 ```cpp #include using namespace std 阅读全文
摘要:
## 思路 如果 $k$ 和每个订单都是固定的,那所有的生产和剩余的货物都是固定的,那直接模拟就好。 可以提前对订单按照天数排序,对于排序后第 $i$ 个订单,可以提前累加前面所有订单所需的货物,再与天数乘以 $k$ 判断能否完成。 ## AC 代码 ```cpp #include using na 阅读全文
摘要:
## 思路 直接做比较难,考虑二分答案,所以我们需要想出一种时间复杂度还行的方法检查答案是否合格。 假设目前二分的答案是 $x$,那么速度低于 $x$ 必然需要别人背。 那么,自然而然地想到将所有人分成两部分,那么速度低于 $x$ 中的所有人应当优先满足较重的,如果优先满足较轻的,就可能导致较重的无 阅读全文
摘要:
## 思路 ### 暴力 比赛的时候想过树链剖分,然后想不出来怎么处理区间合并,再加上树链剖分代码量比较大,我又比较懒,就随手写了个暴力拿了40pts。 思路就是暴力求得 $u$ 到 $v$ 的简单路径,然后暴力枚举模拟一遍。 ### 40pts 代码 ```cpp #include using n 阅读全文
摘要:
## 思路与分析 这道题乍一看还挺难的,但是如果把这个序列拆成两半就会容易一些。 首先,讨论一下序列长度 $n$,如果 $n$ 为偶数,就可以对半分开;如果是 $n$ 奇数,就把中间那位单独拿出来,然后再对半分开。 ![](https://cdn.luogu.com.cn/upload/image_ 阅读全文