本题是USACO2022年到2023年赛季12月第一次比赛中,青铜组第二题。客观来说,从第二题开始就需要有一定的技巧性和思维上的提升了。这道题目主要可以从贪心和模拟的思路去思考,要能够想到如果设计草坪的铺放,让它能够覆盖更多的奶牛。
Farmer John 有 N(1≤N≤10^5)头奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。她们沿水平方向排成一行,奶牛们占据的位置编号为1…N。
由于奶牛们都饿了,FJ 决定在1…N 中的某些位置上种植草地。更赛牛和荷斯坦牛喜欢不同类型的草,所以如果 Farmer John 决定在某个位置种草,他必须选择种植更赛牛喜欢的草或荷斯坦牛喜欢的草——他不能在同一个位置同时种两种草。种植的每一片草地都可以喂饱数量不限的相应品种的奶牛。
每头奶牛愿意移动至多 KK(0≤K≤N−1)个位置以前往一个草地。求出喂饱所有奶牛所需种植的最小草地数量。此外,输出一种使用最小草地数量喂饱所有奶牛的种植方案。任何满足上述条件的方案均视为正确。
输入格式(从终端 / 标准输入读入):
每个测试用例包含 T 个子测试用例,为一种奶牛的排列。输入的第一行包含 T(1≤T≤10)。以下是 T 个子测试用例。
每个子测试用例的第一行包含 N 和 K。第二行包含一个长度为 N 的字符串,其中第 i 个字符表示第 i 头奶牛的品种(G 表示更赛牛,H 表示荷斯坦牛)。
输出格式(输出至终端 / 标准输出)

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



