Codeforces Round #524 (Div. 2)

C. Masha and two friends

题目链接

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

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

知识点,判断矩阵相交

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

  1. #include <iostream>
  2. #include<cstring>
  3. #include<iomanip>
  4. #include<algorithm>
  5. #include<iostream>
  6. #include<string>
  7. #include<cstring>
  8. #include<vector>
  9. #include<stack>
  10. #include<bitset>
  11. #include<cstdlib>
  12. #include<cmath>
  13. #include<set>
  14. #include<list>
  15. #include<deque>
  16. #include<map>
  17. #include<queue>
  18. using namespace std;
  19. typedef long long ll;
  20. ll n,m;
  21. ll num_black(ll x1,ll y1,ll x2,ll y2)
  22. {
  23. ll ans=(x2-x1+1)*(y2-y1+1);
  24. if(ans&1 &&(x1+y1)&1)return ans/2+1;else return ans/2;
  25. }
  26. int main()
  27. {
  28. std::ios::sync_with_stdio(false);
  29. std::cin.tie(0);
  30. int t;
  31. cin>>t;
  32. ll n,m,x1,x2,y1,y2,x3,y3,x4,y4;
  33. ll black;
  34. while(t--)
  35. {
  36. cin>>n>>m>>x1>>y1>>x2>>y2>>x3>>y3>>x4>>y4;
  37. black=num_black(1,1,m,n);
  38. black-=num_black(x1,y1,x2,y2);
  39. // cout<<black<<endl;
  40. black+=(x4-x3+1)*(y4-y3+1)-num_black(x3,y3,x4,y4);
  41. // cout<<black<<endl;
  42. ll x5,y5,x6,y6;
  43. x5=max(x1,x3);y5=max(y1,y3);
  44. x6=min(x2,x4);y6=min(y2,y4);
  45. if(x5<=x6&&y5<=y6)black+=num_black(x5,y5,x6,y6);
  46. cout<<n*m-black<<" "<<black<<endl;
  47. }
  48. return 0;
  49. }

524 (Div. 2) Masha and two friends的更多相关文章

  1. Codeforces Round #524 (Div. 2) Masha and two friends矩形

    题目 题意:    给一个n*m块大的黑白相间的矩形,在这个举行中操作,要先把第一个矩形(左下角坐标(x1,y2),右上角坐标(x2,y2)) 全部涂成白色,再把第二个矩形(左下角坐标(x3,y3), ...

  2. Codeforces Round #524 (Div. 2)(前三题题解)

    这场比赛手速场+数学场,像我这样读题都读不大懂的蒟蒻表示呵呵呵. 第四题搞了半天,大概想出来了,但来不及(中途家里网炸了)查错,于是我交了两次丢了100分.幸亏这次没有掉rating. 比赛传送门:h ...

  3. 竞赛题解 - CF Round #524 Div.2

    CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 ...

  4. Codeforces Round #524 (Div. 2) C. Masha and two friends(矩形相交)

    C. Masha and two friends time limit per test 1 second memory limit per test 256 megabytes input stan ...

  5. Codeforces Round #524 (Div. 2) C. Masha and two friends

    C. Masha and two friends 题目链接:https://codeforc.es/contest/1080/problem/C 题意: 给出一个黑白相间的n*m的矩阵,现在先对一个子 ...

  6. Codeforces Round #524 (Div. 2) C. Masha and two friends(思维+计算几何?)

    传送门 https://www.cnblogs.com/violet-acmer/p/10146350.html 题意: 有一块 n*m 的棋盘,初始,黑白块相间排列,且左下角为白块. 给出两个区间[ ...

  7. Codeforces Round #524 (Div. 2) C. Masha and two friends 几何:判断矩形是否相交以及相交矩形坐标

    题意 :给出一个初始的黑白相间的棋盘  有两个人  第一个人先用白色染一块矩形区域 第二个人再用黑色染一块矩形区域 问最后黑白格子各有多少个 思路:这题的关键在于求相交的矩形区间 给出一个矩形的左下和 ...

  8. Codeforces Round #524 (Div. 2) C. Masha and two friends 思路

    题目:题目链接 思路:直接计数显然是不好处理的,但分情况讨论只要不写错这题是一定可以出的,但这样基本做完这个题就没时间做其他题了,但当时我就这么蠢的这样做了,比赛一个半小时的时候突然发现一个似乎可行的 ...

  9. Codeforces Round #524 (Div. 2) Solution

    A. Petya and Origami Water. #include <bits/stdc++.h> using namespace std; #define ll long long ...

随机推荐

  1. EF+LINQ事物处理

    在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作同一条数据的同一个字段的话, ...

  2. 11G新特性 -- ASM的兼容性

    Oracle 11g中,asm同时支持10g和11g数据库.但是asm的版本不能低于数据库的版本. 与兼容性现相关的两个参数: ·compatible.rdbms 支持的最低版本的oracle数据库版 ...

  3. CountDownLatch、CyclicBarrier及Semaphore的用法示例

    一.参考blog https://www.cnblogs.com/dolphin0520/p/3920397.html 二.CountDownLatch 个人把它类比于一个持有计数的闸门,每到达这个闸 ...

  4. MDK-ARM输出HEX文件重命名设置

    输出的可执行文件和库的名称就是在这里定义.比如我们常见输出Hex文件,其名称就是这里定义的.

  5. TitleBar 的那些设置

    设置状态栏透明: View decorView = activity.getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYO ...

  6. Fluent动网格【6】:部件变形案例

    本案例描述使用动网格过程中处理边界变形的问题. 案例描述 本案例几何为一个抛物线旋转成型的几何体.如图所示. 其中上壁面刚体运动引起抛物面变形.刚体运动方程为: \[ v=\left\{ \begin ...

  7. [Big Data - Kafka] kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

  8. 【iCore1S 双核心板_ARM】例程十一:RTC实时时钟实验——显示时间和日期

    实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ RTC_DateTypeDef sDate; RTC_TimeTypeDef sTime; u ...

  9. 【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验

    实验现象: 核心代码: int main(void) { int i,n; ]; ]; HAL_Init(); system_clock.initialize(); led.initialize(); ...

  10. 【emWin】例程十八:jpeg图片显示

    说明:1.将文件拷入SD卡内即可在指定位置绘制jpeg图片文件,不必加载到储存器.     由于jpeg格式文件显示时需要进行解压缩,耗用动态内存,iCore3所有模块受emwin缓存的限制,jpeg ...