http://acm.hdu.edu.cn/showproblem.php?pid=6052
题意:给一个n*m(1<=n,m<=100)的矩阵,每个矩阵元素有一个颜色值ai(0<=ai<=10000),现在定义一个子矩阵的value为子矩阵中不同颜色的数量,求子矩阵value的期望。
题解:
做这个题首先是因为南京网络赛的B题,然后这就是传说中相近的原题之一。。好吧,是多校题,什么感受不用我说了吧QAQ。
在做了一个暑假的多校之后,算贡献三个字已经常常挂在我嘴边,虽然时常不知道怎么算。但是显然,这种题不可能去枚举子矩阵的,所以既然每个点都有颜色,那肯定要想如何不重复、有效得计算某个点能出现的子矩阵个数的贡献。这样算出的结果除以n*(n+1)*m*(m+1)/4(一共有这么多种子矩阵的选法)后就是期望了。
这里先扔个链接https://blog.csdn.net/u014258433/article/details/76223343
orz葫芦爷https://blog.csdn.net/calabash_boy/article/details/76272704
一开始我一心想着单调栈于是发现这是最原始的一篇,结合着别的参考了他的代码的博客看了好几个小时愣是没看懂。于是就去跪葫芦爷