首页 > 其他 > 详细

棋盘组合数

时间:2020-07-11 22:19:20      阅读:55      评论:0      收藏:0      [点我收藏+]

在棋盘上,从点(0,0)走到(i,j)的方案数是C(i+j,i)。

不接触某一条直线的方案数

问题:求从点(0,1)走到点(i,j)且不接触直线y=x的路径方案数。

我们可以取(i,j)关于直线y=x的对称点(j,i),可以发现每一条从(0,1)出发到(i,j)且接触了直线y=x的路径都对应了一条从(0,1)出发到(j,i)的路径,我们只需要把这条路径在最后一次接触直线后的那部分沿y=x翻折即可建立起这样一种对应关系。然后我们将从(0,1)到(i,j)任意走的方案数减去接触了直线的不合法方案数(即从(0,1)到(j,i)的方案数)即可得到合法方案数。 这个方案数为:\(C(i+j-1,i)-C(i+j-1,i-1)\)

技术分享图片

不穿过某一条直线的方案数

问题:从(0,0)出发到(i,j)且不穿过直线y=x的方案数。

这时不穿过直线y=x等价于不接触直线y=x-1,所有我们取(i,j)关于直线y=x-1的对称点(j+1,i-1),那么每条不合法的路径就对应了一条从(0,0)到(j+1,i-1)的路径,那么我们就可以算出合法路径数为:\(C(i+j,i)-C(i+j,i-1)\)

技术分享图片

总结:其实我们就是要把接触了边界直线的一条路径对应成目标点关于边界直线对称的那个点的一条路径。

题目:[NOI2018]冒泡排序

?
?

棋盘组合数

原文:https://www.cnblogs.com/lishuyu2003/p/13285433.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!