zoukankan      html  css  js  c++  java
  • 524 (Div. 2) Masha and two friends

    Codeforces Round #524 (Div. 2)

    C. Masha and two friends

    题目链接

    题意:较为简单,初始给定这个白黑相交的格子,第一遍把坐标范围内的全部涂白,第二遍把坐标范围内的全部涂黑,问最终各个颜色的数目。

    思路:写一个函数,求白黑相间矩阵内的黑色格子的数目,如果格子数为偶数,白=黑。如果为奇数,当矩阵左下角坐标x1+y1为奇数,黑色多一。然后黑色格子数处理三次,第一次减少,第二次增加,第三次(重叠的部分)增加,数目为范围内的原来的黑色格子数。

    知识点,判断矩阵相交

          long long x5,y5,x6,y6;
          x5=max(x1,x3);y5=max(y1,y3);
          x6=min(x2,x4);y6=min(y2,y4);
          if(x5<=x6&&y5<=y6)
    

    #include <iostream>
    #include<cstring>
    #include<iomanip>
    #include<algorithm>
    #include<iostream>
    #include<string>
    #include<cstring>
    #include<vector>
    #include<stack>
    #include<bitset>
    #include<cstdlib>
    #include<cmath>
    #include<set>
    #include<list>
    #include<deque>
    #include<map>
    #include<queue>
    using namespace std;
    typedef long long ll;
       ll n,m;
    ll num_black(ll x1,ll y1,ll x2,ll y2)
    {
        ll ans=(x2-x1+1)*(y2-y1+1);
        if(ans&1 &&(x1+y1)&1)return ans/2+1;else return ans/2;
    }
    int main()
    {
      std::ios::sync_with_stdio(false);
    	std::cin.tie(0);
      int t;
      cin>>t;
      ll n,m,x1,x2,y1,y2,x3,y3,x4,y4;
       ll black;
      while(t--)
      {
          cin>>n>>m>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
          black=num_black(1,1,m,n);
          black-=num_black(x1,y1,x2,y2);
             //  cout<<black<<endl;
          black+=(x4-x3+1)*(y4-y3+1)-num_black(x3,y3,x4,y4);
           //   cout<<black<<endl;
          ll x5,y5,x6,y6;
          x5=max(x1,x3);y5=max(y1,y3);
          x6=min(x2,x4);y6=min(y2,y4);
          if(x5<=x6&&y5<=y6)black+=num_black(x5,y5,x6,y6);
     cout<<n*m-black<<" "<<black<<endl;
    
      }
        return 0;
    }
    
    不疯魔不成活
  • 相关阅读:
    python3 TypeError: a bytes-like object is required, not 'str'
    Centos 安装Python Scrapy PhantomJS
    Linux alias
    Vim vimrc配置
    Windows下 Python Selenium PhantomJS 抓取网页并截图
    Linux sort
    Linux RSync 搭建
    SSH隧道 访问内网机
    笔记《鸟哥的Linux私房菜》7 Linux档案与目录管理
    Tornado 错误 "Global name 'memoryview' is not defined"
  • 原文地址:https://www.cnblogs.com/gzr2018/p/10021476.html
Copyright © 2011-2022 走看看