zoukankan      html  css  js  c++  java
  • Boom

    紧急事件!战场内被敌军埋放了n枚炸弹!
    我军情报部门通过技术手段,掌握了这些炸弹的信息。这些炸弹很特殊,每枚炸弹的波及区域是一个矩形。第i枚炸弹的波及区域是以点(xi1,yi1)为左下角,点(xi2,yi2)为右上角的矩形。
    mostshy,作为我军的指挥官,想要知道,如果这些弹同时被敌军引爆,最多将有多少枚炸弹会波及到同一个区域(不考虑边界和角落)。

    输入描述:

    第一行是一个整数T(1 ≤ T ≤ 50),表示样例的个数。
    以后每个样例第一行是一个整数n(1 ≤ n ≤ 50),表示炸弹的个数。
    接下来n行,每行四个整数,第i行为

    
    

    输出描述:

    每个样例输出一行,一个整数,表示最多将有多少枚炸弹会波及到同一个区域。
    示例1

    输入

    1
    2
    0 0 50 50
    40 40 100 100

    输出

    2

    说明

    在左下角为(40,40),右上角为(50,50)的矩形区域内,有两个炸弹同时波及,所以答案为2。
    树状数组查找
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    #include <vector>
    #include <queue>
    #include <stack>
    #include <cstdlib>
    #include <iomanip>
    #include <cmath>
    #include <cassert>
    #include <ctime>
    #include <map>
    #include <set>
    using namespace std;
    #pragma comment(linker, "/stck:1024000000,1024000000")
    #define lowbit(x) (x&(-x))
    #define max(x,y) (x>=y?x:y)
    #define min(x,y) (x<=y?x:y)
    #define MAX 100000000000000000
    #define MOD 1000000007
    #define pi acos(-1.0)
    #define ei exp(1)
    #define PI 3.1415926535897932384626433832
    #define ios() ios::sync_with_stdio(true)
    #define INF 0x3f3f3f3f
    #define mem(a) ((a,0,sizeof(a)))
    typedef long long ll;
    int dp[106][106],t,n;
    int x,y,a,b;
    int query(int u,int v)
    {
        int ans=0;
        for(int i=u;i<=105;i+=lowbit(i))
            for(int j=v;j<=105;j+=lowbit(j))
                ans+=dp[i][j];
        return ans;
    }
    void add(int u,int v,int value)
    {
        for(int i=u;i;i-=lowbit(i))
            for(int j=v;j;j-=lowbit(j))
                dp[i][j]+=value;
    }
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            memset(dp,0,sizeof dp);
            scanf("%d",&n);
            for(int i=0;i<n;i++)
            {
                scanf("%d%d%d%d",&x,&y,&a,&b);
                add(x,y,1);
                add(a,b,1);
                add(x,b,-1);
                add(a,y,-1);
            }
            int ans=0;
            for(int i=1;i<=100;i++)
                for(int j=1;j<=100;j++)
                    ans=max(ans,query(i,j));
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    checked、disabled在原生、jquery、vue下不同写法
    大白话理解闭包及相关笔试题
    reduce多种方法计算数组中某个值的出现次数
    js原生_获取url键值对
    弹窗和遮罩层的显示隐藏及空白区域关闭
    tab选项卡切换(js原生、jQuery )
    大白话理解this
    js---通过arguments来获取指定参数
    js-字符串方法
    登录linux,输入ls显示anaconda-ks.cfg cobbler.ks ....., 原因在于root@ ~ / 区别
  • 原文地址:https://www.cnblogs.com/shinianhuanniyijuhaojiubujian/p/8961396.html
Copyright © 2011-2022 走看看