• 网格染色问题


    有一个网格,在初始状态下所有网格都是空白的。现有如下操作:执行n次操作,每次选择坐标对应的那一行和一列,在该行或该列上选择两个端点网格,将两个端点网格间的所有网格(包括端点网格)都染色。具体染色规则:如果两个网格坐标(x1, y1)和(x2, y2)中横坐标x1 == x2,则把这一列所有网格都染色,如果纵坐标y1 == y2则把这一行都染色。同一网格多次染色只计一次。

    问:n次操作后将有多少个网格被染色?

    #include <iostream>
    
    #include <vector>
    
    #include <set>
    
    using namespace std;
    
     
    
    //直接进行暴力法计算网格结果。为了避免重复,将得到的端点总数放到集合里面,最终集合里面的点的个数即为填充的面积。
    
    int main()
    
    {
    
         set<pair<int, int>> rec;
    
         int n;
    
         cin >> n;
    
     for (int i = 0; i < n; ++i)
    
    {
    
          int x1, y1, x2, y2;
    
          cin >> x1 >> y1 >> x2 >> y2;
    
          int l, r;
    
          if  (x1 == x2)
    
        {
    
                   //xi和x2相等时,分别得到上端点和下端点
    
       if  (y1 < y2)
    
            {
    
                    l = y1;
    
                    r = y2;
    
                   
    
            }
    
               else
    
            {
    
                    l = y2;
    
                    r = y1;
    
                   
    
            }
    
       for (int m = l; m <= r; ++m)
    
    {
    
            rec.insert(make_pair(x1, m));
    
           
    
    }
    
      
    
        }
    
          else
    
        {
    
                          //不相等的时候 , 依次从左到右计算端点格数。
    
       if  (x1 < x2)
    
            {
    
                    l = x1;
    
                    r = x2;
    
                   
    
            }
    
               else
    
            {
    
                    l = x2;
    
                    r = x1;
    
                   
    
            }
    
       for (int m = l; m <= r; ++m)
    
    {
    
            rec.insert(make_pair(m, y1));
    
           
    
    }
    
      
    
        }
    
         
    
    }
    
     cout << rec.size() << endl;
    
        // 得到结果。
    
     return 0;
    
    }
  • 相关阅读:
    bzoj2101:[USACO2010 DEC]TREASURE CHEST 藏宝箱
    P3976 [TJOI2015]旅游(未完成)
    洛谷 P 5 3 0 4 [GXOI/GZOI2019]旅行者
    NOIP原题 斗地主(20190804)
    P2860 [USACO06JAN]冗余路径Redundant Paths
    vue中的插槽(slot)
    vue动态绑定class
    发现一个ps抠毛发简单快捷高质量的方法
    propsData传递数据
    sort排序原理
  • 原文地址:https://www.cnblogs.com/youngao/p/13193114.html
Copyright © 2020-2023  润新知