agc021 vp记录
abcd都是签到题
有 只变色龙,一开始都是蓝色。现在你喂了 次球,每次指定一只变色龙吃下你指定颜色的球。
一只变色龙从蓝色变成红色当且仅当它吃的红球比蓝球多;
一只变色龙从红色变成蓝色当且仅当它吃的蓝球比红球多。
求最后能使所有变色龙都变成红色的方案数。
两个方案不同当且仅当至少一次喂的球颜色不同(而不是喂的变色龙不同)。
注意:存在一次喂的变色龙不同的两个方案可能是相同的方案。
如果某一条龙是红色,那么除了最后一个使它变红的红球以及有可能跟在红球后的一个蓝球,把其他的球都扔给另一个龙方案仍然成立。
于是我们可以钦定一条龙为大龙,其他的龙为小龙,只有大龙能吃大于等于2的球数,同时小龙的吃球序列只有可能是 或 。
我们先从 k 个球中取出一个球来最后微调大龙,其余的球遵循以下策略:
- 若是红球且有小龙没吃球,给小龙。
- 若是蓝球且有小龙只吃了一个红球,给小龙,否则给大龙。
我们钦定当前求的方案是最多能配出 a 条红龙的方案数,那么上述方案中需要有 a-1 个R(即小龙),且颜色序列的样子为只有(a-1)个 ,其余全部为 。
对于剩下的大龙,将序列中的 和 删掉,只剩下 ,将其中一半换成 ,那么大龙变为红色。若剩下 个 ,将 个球变为红色,在把最开始取出的球变为蓝色扔进去。若剩下 个 ,将 个球变为红色,此时的大龙为蓝,将最后一个球变为 扔进去。容易发现这样构造最多只能有 a 个红龙且颜色序列唯一对应一种构造方案,且对于每一个 a ,方案数为 。
最终答案为 。
同时有第二种思路。似乎这一种更具有一般性。
对于神秘的计数题,仍然是要先思考题目性质,抽象并简化题目模型,而后该咋做咋做。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】