首页 > 代码库 > Fox Observation

Fox Observation

题目链接

  • 题意:
    在无限大的二维平面上给n个点(点在方格内部),坐标均为整数值,每个点有一个值。现在需要选择一个矩形(定点坐标均为整数,切均在方格内部),值等于矩形内的点之和加上边上的点的和除以面积(面积大于0)
  • 分析:
    和CF上边的一道题有异曲同工之妙。对于长宽均为1的正方形,最多有四个点在里边,变长每增加一点,可以发现比值都会减少,所以直接找面积为1的即可
map<pair<int, int>, int> mp;

int main()
{
    int n, x, y, v;
    while (~RI(n))
    {
        REP(kase, n)
        {
            RIII(x, y, v);
            mp[MP(x, y)] += v;
            mp[MP(x - 1, y)] += v;
            mp[MP(x, y - 1)] += v;
            mp[MP(x - 1, y - 1)] += v;
        }
        int ans = 0;
        FC(it, mp)
        {
            ans = max(ans, it->second);
        }
        printf("%d / 1\n", ans);
    }
    return 0;
}


Fox Observation