zoukankan      html  css  js  c++  java
  • 【84.62%】【codeforces 552A】Vanya and Table

    time limit per test2 seconds
    memory limit per test256 megabytes
    inputstandard input
    outputstandard output
    Vanya has a table consisting of 100 rows, each row contains 100 cells. The rows are numbered by integers from 1 to 100 from bottom to top, the columns are numbered from 1 to 100 from left to right.

    In this table, Vanya chose n rectangles with sides that go along borders of squares (some rectangles probably occur multiple times). After that for each cell of the table he counted the number of rectangles it belongs to and wrote this number into it. Now he wants to find the sum of values in all cells of the table and as the table is too large, he asks you to help him find the result.

    Input
    The first line contains integer n (1 ≤ n ≤ 100) — the number of rectangles.

    Each of the following n lines contains four integers x1, y1, x2, y2 (1 ≤ x1 ≤ x2 ≤ 100, 1 ≤ y1 ≤ y2 ≤ 100), where x1 and y1 are the number of the column and row of the lower left cell and x2 and y2 are the number of the column and row of the upper right cell of a rectangle.

    Output
    In a single line print the sum of all values in the cells of the table.

    Examples
    input
    2
    1 1 2 3
    2 2 3 3
    output
    10
    input
    2
    1 1 3 3
    1 1 3 3
    output
    18
    Note
    Note to the first sample test:

    Values of the table in the first three rows and columns will be as follows:

    121

    121

    110

    So, the sum of values will be equal to 10.

    Note to the second sample test:

    Values of the table in the first three rows and columns will be as follows:

    222

    222

    222

    So, the sum of values will be equal to 18.

    【题目链接】:http://codeforces.com/contest/552/problem/A

    【题解】

    枚举每个矩形占据了哪些格子;
    用个数组递增那些位置的值就好了.

    【完整代码】

    #include <bits/stdc++.h>
    using namespace std;
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    #define rep1(i,a,b) for (int i = a;i <= b;i++)
    #define rep2(i,a,b) for (int i = a;i >= b;i--)
    #define mp make_pair
    #define pb push_back
    #define fi first
    #define se second
    #define rei(x) scanf("%d",&x)
    #define rel(x) scanf("%I64d",&x)
    
    typedef pair<int,int> pii;
    typedef pair<LL,LL> pll;
    
    const int MAXN = 100+10;
    const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
    const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
    const double pi = acos(-1.0);
    
    int a[MAXN][MAXN];
    int n;
    
    int main()
    {
        //freopen("F:\rush.txt","r",stdin);
        rei(n);
        rep1(i,1,n)
        {
            int a1,b1,a2,b2;
            scanf("%d%d%d%d",&a1,&b1,&a2,&b2);
            rep1(j,b1,b2)
                rep1(k,a1,a2)
                    a[j][k]++;
        }
        LL ans = 0;
        rep1(i,1,100)
            rep1(j,1,100)
                ans+=a[i][j];
        cout << ans << endl;
        return 0;
    }
  • 相关阅读:
    MongoDb
    Android中的Parcelable接口和Serializable使用方法和差别
    8.Swift教程翻译系列——控制流之条件
    Android实训案例(四)——关于Game,2048方块的设计,逻辑,实现,编写,加上色彩,分数等深度剖析开发过程!
    漫谈机器学习经典算法—人工神经网络
    题目1191:矩阵最大值
    HTML中select的option设置selected=&quot;selected&quot;无效的解决方式
    HorizontalListView中使用notifyDataSetChanged()和notifyDataSetInvalidated()
    获取Filter的三种途径
    规模化敏捷开发的10个最佳实践(上)
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7626832.html
Copyright © 2011-2022 走看看