【P6191 [USACO09FEB]Bulls And Cows S】题解
本文搬运自本人初中博客园博客,若图片加载不出来,可到原文查看:https://www.cnblogs.com/zhangtingxi/p/15774893.html
题目链接
题目
一年一度的展会要来临了,Farmer John 想要把 ()只奶牛和公牛安排在单独的一行中。 John 发现最近公牛们非常好斗;假如两只公牛在这一行中靠的太近,他们就会吵架,以至于斗殴,破坏这和谐的环境。
John 非常的足智多谋,他计算出任何两只公牛之间至少要有 ()只奶牛,这样才能避免斗殴。John 希望你帮助他计算一下有多少种安排方法,可避免任何斗殴的的发生。John 认为每头公牛都是一样的,每头奶牛都是一样的。因而,只要在一些相同的位置上有不同种类的牛,那这就算两种不同的方法。
思路
设 表示在位置为 的地方放一头公牛的方案数,则我们可以枚举前一头公牛的位置:
明显,可以用前缀和优化。
时间复杂度 。
总结
这道题感觉上就应该是一道dp,其实也是用到了组合数学的思想。
其实这类dp只需要想到在某个点且这个点刚好为题目所给状态即可。
Code
1 | // Problem: P6191 [USACO09FEB]Bulls And Cows S |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 zhangxixi的博客!





