感谢楼上回复,我还是太水了,算法练习得少,写得不好。 关于2楼,我通过率是20%而该层主通过率40%的原因,刚才重写时也许找到了,我的代码逻辑错了。比如DFS到第i层,假如K种花都已经放过了,那么就可以不用继续递归了,剩下N-i层每一层都可以放K种花,也就是结果加上K的N-i次方。由于我是按照N=3 K=2来作为示例,所以这里我加上了2的N-i次方。 关于动归的思路,应该是f(n, k) = k*(f(n-1, k-1) + f(n-1, k)。设花的种类为1~k,f(n-1, k-1)可以看作前n-1个位置放置花种1~k-1的种数,然后第n个位置必须放置花种k。由于轮换对称性,第n个位置的花种k可以和任意花种兑换,因此要乘以k。f(n-1, k)则可以看作前n-1个位置就放置了所有的花种,因此肯定和前面的k*f(n-1, k-1)的放置放法是不同的。当然这里也要乘以k,因为第n个位置还是能放置k种花。
点赞 5

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
牛客网
牛客企业服务