摘要:
思路 这题用简单的暴力其实就能过了。 我们只需计算出 \(s\) 的末尾与 \(t\) 的开头重合的地方,结果为 \(2\times n-\text{重合部分长度}\)。 而关键就在如何求出重合部分的长度。 我们可以枚举第一个字符串中的各位,如果发现 \(s[i]=t[0]\),那么枚举第二个字符串 阅读全文
posted @ 2022-02-09 19:28
cycwss
阅读(47)
评论(0)
推荐(0)
摘要:
思路 直接模拟,对于每组测试数据,分别调整 A 队前 n 个人和 B 队后 n 个人,得分最大值当然是 \(2n\)。 例如在第一组数据中,A 队和 B 队四个人都分别出石头和剪刀,那么我们可以把 A 队第一个人调整为布,再把 B 队第二个人调整为布。所以最后的得分就是 4。 代码 模拟思路即可 # 阅读全文
posted @ 2022-02-09 19:27
cycwss
阅读(36)
评论(0)
推荐(0)
摘要:
思路 既然说了新酒店和其他酒店最小距离是 \(d\),那我们可以先在两边建,即最初 \(ans=2\)。然后再一个个枚举两个相邻的酒店,尝试在相邻两个酒店之间建造酒店,如果重合了就只可建造一个酒店,否则如果距离大于 \(2\times d\) 就可建造两个酒店。 代码 #include<bits/s 阅读全文
posted @ 2022-02-09 19:27
cycwss
阅读(29)
评论(0)
推荐(0)
摘要:
思路 我们可以考虑建立两个数组 a 和 b,用两种方法构造方案,最后再取其中最大值即可。 所以先从前往后扫一遍字符串,如果 \(s_i='<'\),那么构造方案 \(a_{i+1}=a_{i}+1\)。 再从后往前扫一遍字符串,如果 \(s_i='>'\),那么构造方案 \(b_{i}=b_{i+1 阅读全文
posted @ 2022-02-09 19:21
cycwss
阅读(40)
评论(0)
推荐(0)
摘要:
思路 小学四年级的时候我们就知道,和一定,差小积大。所以在这题中,我们可以让两数之差尽量大,从而让积尽量小。 所以我们可以尝试用两种方法来计算: \(1.\) 先把 a 减到最小,再把 b 减去 \(n-x\)。 \(2.\) 先把 b 减到最小,再把 a 减去 \(n-y\)。 最后再把两个答案取 阅读全文
posted @ 2022-02-09 19:14
cycwss
阅读(45)
评论(0)
推荐(0)
摘要:
思路 非常简单,由于 $ 1 \le b \le 300$,所以只要枚举男孩的数量,如果对应的女孩数量在 \([0,g]\) 之间,就把计数器加 1。 代码 应该是最简单的了 #include<bits/stdc++.h> using namespace std; int main(){ int b 阅读全文
posted @ 2022-02-09 19:06
cycwss
阅读(34)
评论(0)
推荐(0)