博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 1080C- Masha and two friends
阅读量:5351 次
发布时间:2019-06-15

本文共 979 字,大约阅读时间需要 3 分钟。

在这里插入图片描述

AC代码

#include 
#define ll long longconst int maxn=1e6+10;using namespace std;inline ll paintw(ll x1,ll y1,ll x2,ll y2){
ll n=x2-x1+1; ll m=y2-y1+1; // 左下角是黑色,向下取整 if((x1+y1)&1) return n*m/2; // 左下角是白色,向上取整 else return (n*m+1)/2;}inline ll paintb(ll x1,ll y1,ll x2,ll y2){
ll n=x2-x1+1; ll m=y2-y1+1; return n*m-paintw(x1,y1,x2,y2);}int main(int argc, char const *argv[]){
int t; ll n,m; cin>>t; ll x1,x2,x3,x4; ll y1,y2,y3,y4; while(t--) {
cin>>n>>m; cin>>x1>>y1>>x2>>y2; cin>>x3>>y3>>x4>>y4; // 求出第一块区域的黑色数量和第二块区域的白色数量 ll b1=paintb(x1,y1,x2,y2); ll w2=paintw(x3,y3,x4,y4); ll answ; // 左下角一定是白色,所以整个区域的白色数量向上取整 // 第一块的白色数量增加b1,第二块白色数量较少w2 answ=(n*m+1)/2+b1-w2; ll minx=min(x2,x4);ll maxx=max(x1,x3); ll miny=min(y2,y4);ll maxy=max(y1,y3); // 如果两区域有相交的部分,把该部分变成黑色 if(minx>=maxx&&miny>=maxy) answ-=paintb(maxx,maxy,minx,miny); cout<
<<" "<
<

转载于:https://www.cnblogs.com/Friends-A/p/10324323.html

你可能感兴趣的文章
关于ASP.NET MVC开发设计中出现的问题与解决方案汇总 【持续更新】
查看>>
关于Entity Framework中的Attached报错的完美解决方案终极版
查看>>
Selenium之Web页面滚动条滚操作
查看>>
组合数据类型练习,英文词频统计实例上
查看>>
Uber回馈开源的一些软件
查看>>
day 3 修改haproxy.cfg 作业
查看>>
UIScrollView —— 缩放实现案例(二)
查看>>
【Qt】Qt Linguist介绍【转】
查看>>
sim usim Uim 区别
查看>>
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
视觉设计师的进化
查看>>
Python/jquery
查看>>
WPF之Binding
查看>>
【BZOJ】【2132】圈地计划
查看>>
Lua 语言基本语法
查看>>
ARM 的Thumb状态测试
查看>>
windows下读取utf-8文件
查看>>
apache 启动不了的排查方法
查看>>