zoukankan      html  css  js  c++  java
  • 洛谷-P2956 [USACO09OCT]The Robot Plow G

    洛谷-P2956 [USACO09OCT]The Robot Plow G

    原题链接:https://www.luogu.com.cn/problem/P2956


    题目描述

    Farmer John为了让自己从无穷无尽的犁田工作中解放出来,于是买了个新机器人帮助他犁田。这个机器人可以完成犁田的任务,可惜有一个小小的缺点:这个犁田机器人一次只能犁一个边的长度是整数的长方形的田地。

    因为FJ的田地有树和其它障碍物,所以FJ设定机器人去犁很多不同的长方形。这些长方形允许重叠。他给机器人下了P个指令,每个指令包含一个要犁长方形的地。这片田地由长方形的左下角和右上角坐标决定。他很好奇最后到底有多少个方格的地被犁过了。

    一般来说,田地被分割为很多小方格。这些方格的边和x轴或y轴平行。田地的宽度为X个方格,高度为Y个方格 (1 <= X <= 240; 1 <= Y <= 240). FJ执行了I (1 <= I <= 200)个指令,每个指令包含4个整数:Xll, Yll, Xur, Yur (1 <= Xll <= Xur; Xll <= Xur <=X; 1 <= Yll <= Yur; Yll <= Yur <= Y), 分别是要犁的长方形的左下角坐标和右上角坐标。机器人会犁所有的横坐标在Xll..Xur并且纵坐标在Yll..Yur范围内的所有方格的地。可能这个长方形会比你想象的多一行一列(就是说从第Xll列到第Xur列一共有Xur - Xll + 1列而不是Xur - Xll列)。

    考虑一个6方格宽4方格高的田地。FJ进行了2个操作(如下),田地就被犁成"*"和"#"了。虽然一般被犁过的地看起来都是一样的。但是标成"#"可以更清晰地看出最近一次被犁的长方形。

    ......             **....             #####. 
    ......  (1,1)(2,4) **....  (1,3)(5,4) #####. 
    ......             **....             **.... 
    ......             **....             **.... 
    

    一共14个方格的地被犁过了。

    输入格式

    • 第1行:三个以空格分隔的整数:X,Y和I
    • 第2..I + 1行:第i + 1行包含耕作指令i,该指令由四个整数描述:Xll,Yll,Xur和Yur

    输出格式

    • 第1行:一个整数,代表所耕制的正方形总数

    输入输出样例

    输入 #1

    6 4 2 
    1 1 2 4 
    1 3 5 4 
    

    输出 #1

    14 
    

    说明/提示

    As in the task's example.

    C++代码

    #include <iostream>
    using namespace std;
    
    int a[250][250];
    
    int main() {
        int x, y, t, ans=0;
        cin >> x >> y >> t;
        int xi[t], yi[t], xu[t], yu[t];
        for (int i=0; i<t; ++i)
            cin >> xi[i] >> yi[i] >> xu[i] >> yu[i];
        for (int i=0; i<t; ++i)
            for (int j=xi[i]; j<=xu[i]; ++j)
                for (int k=yi[i]; k<=yu[i]; ++k)
                    a[y-k+1][j] = 1;
        for (int i=1; i<=y; ++i)
            for (int j=1; j<=x; ++j)
                if (a[i][j] == 1)
                    ++ans;
        cout << ans << endl;
        return 0;
    }
    
  • 相关阅读:
    #Leetcode# 451. Sort Characters By Frequency
    #Leetcode# 148. Sort List
    PAT 甲级 1138 Postorder Traversal
    PAT 甲级 1141 PAT Ranking of Institutions
    PAT 甲级 1142 Maximal Clique
    PAT 甲级 1146 Topological Order
    PAT 甲级 1143 Lowest Common Ancestor
    #Leetcode# 347. Top K Frequent Elements
    牛客寒假算法基础集训营4
    PAT 1147 Heaps
  • 原文地址:https://www.cnblogs.com/yuzec/p/13461689.html
Copyright © 2011-2022 走看看