设正方形左上角行号有 R=n−d+1 种,列号有 C=m−d+1 种。
对某一行 i,只看竖直方向,有 ai 种左上角行号可以覆盖它;由于列号可任意取,所以该行被覆盖的放置方式数量为:
ai×C
同理,对某一列 j,只看水平方向,有 bj 种左上角列号可以覆盖它;由于行号可任意取,所以该列被覆盖的放置方式数量为:
在一个 n 行m列的矩阵中放置一个边长为d的正方形,正方形必须完整落在矩阵内部。正方形左上角的行号可取 n−d+1 种、列号可取 m−d+1 种,因此放置方式总数为(n−d+1)(m−d+1)种。
对矩阵中的每个格子定义它的得分:等于覆盖到该格子所在行的放置方式数量乘以覆盖到该格子所在列的放置方式数量。这里一个放置方式(一个完整的正方形)覆盖到某一行,是指它在竖直方向上压住了这一行;覆盖到某一列同理。也就是说,一行的覆盖数是所有能压住这一行的完整正方形(不同左上角位置)的个数,列同理。
请选出得分最高的前 k 个格子(若有并列,按得分从高到低取满 k 个),求出这k个格子的得分之和,再除以放置方式总数。题目保证这个比值一定是整数,输出该整数。
输入一行,包含四个整数 n,m,k,d(1≤n,m≤2000,1≤d≤min(n,m),1≤k≤n×m),含义如题所述
输出一个整数,表示前k 个最高得分之和除以放置方式总数的结果。
输入
3 3 3 2
输出
8
说明
放置方式共(3−2+1)×(3−2+1)=4 种。覆盖到第0,1,2 行的放置方式数分别为 2,4,2,各列同理为 2,4,2。于是九个格子的得分矩阵为[[4,8,4],[8,16,8],[4,8,4]]。取最高的3个得分 16,8,8,和为 32,再除以放置方式数 4 得 8。
输入
3 3 9 2
输出
16
说明
取全部9 个格子,得分之和为4+8+4+8+16+8+4+8+4=64,除以放置方式数 4 得 16
本题属于以下题库,请选择所需题库进行购买
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册