zoukankan      html  css  js  c++  java
  • 【P1369】矩形(贪心)

    蒟蒻现在连DP都做不出来了,就只能做一些XJB贪心题,这个题题目向非常友好,100的数据范围一看就是让你跑O(n^4)的做法的,然而实际上并不是那么多,大约是,额,反正要快不少。

    没什么好说的,直接枚举矩形的左上右下寻找出所有的矩形,然后暴力枚举出最大的那个就可以了,要注意矩形的顶点可能覆盖了某些点,在计算的时候要减去重复的。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<queue>
    #define re register
    #define maxn 1000007
    #define ll long long
    using namespace std;
    int n,m;
    struct point
    {
        int x,y,id;
    };
    point a[1001];
    int d,ans,map[301][301],sh[1001][1001],sl[1001][1001],maxx,x,y;
    int main()
    {
        cin>>n;
        for(re int i=1;i<=n;i++)
        {
            cin>>x>>y;
            map[x][y]=1;
        }
        for(re int i=1;i<=100;i++)
        {
            for(re int j=1;j<=100;j++)
            {
                if(map[i][j])
                {
                    sh[i][j]=sh[i][j-1]+1;
                    sl[i][j]=sl[i-1][j]+1;
                }else
                {
                    sh[i][j]=sh[i][j-1];
                    sl[i][j]=sl[i-1][j];
                }
            }
        }
        for(re int k=1;k<=100-1;k++)
        {
            for(re int i=1;i<=100-1;i++)
            {
                for(re int j=i+1;j<=100;j++)
                {
                    for(re int x=k+1;x<=100;x++)
                    {
                        ans=(sh[x][j]-sh[x][i])+(sh[k][j]-sh[k][i])+(sl[x][j]-sl[k][j])+(sl[x][i]-sl[k][i]);
                        if(map[k][i])
                        ans--;
                        if(map[x][i])
                        ans--;
                        if(map[k][j])
                        ans--;
                        if(map[x][j])
                        ans--;
                        maxx=max(ans,maxx);
                    }
                }
            }
        }
        cout<<maxx;
    }
  • 相关阅读:
    使用servicename连接Oracle数据库
    使用SID连接Oracle数据库
    使用xlrd模块
    【Project Euler 8】Largest product in a series
    Git使用帮助
    【Project Euler 1】Multiples of 3 and 5
    VSCode使用新体验
    导出牛顿引力形式为平方反比的两种方式
    NOIP2018游记
    即将退役声明
  • 原文地址:https://www.cnblogs.com/victorique/p/8427093.html
Copyright © 2011-2022 走看看