P9028 题解

· · 题解

思路其实很好想,就是计算 每个 \text{NFP}i 天的价值 j,最大值减最小值既是答案。

需要注意的是要先枚举列,再从下到上枚举行。

for(int j = 1;j <= s;j++){ //枚举列
    int i = r;
    while(i >= 1 && t[i][j] == '.') //下到上枚举行直到遇到 #
        i--;
    minn = min(minn , r - i + 1); //更新最小
    maxn = max(maxn , r - i + 1); //更新最大
}
printf("%d\n" , maxn - minn); //答案就是最大-最小