1816: 矩形
来源:互联网 发布:ipadpro网络不稳定 编辑:程序博客网 时间:2024/06/15 19:26
http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1816
一开始执着于固定左边的矩形,枚举右边的位置,不知道哪里错了,至今还是没找到bug,后面直接考虑坐标
1816: 矩形
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 150 Solved: 46
SubmitStatusWeb Board
Description
小S和小D两个小雪参,在玩一个关于矩形的游戏以帮助他们学会怎么计算矩形的面积然后完成作业去打游戏(两个小雪参一起打游戏你怕不怕!)。他们约定每个人给出两个坐标,分别是两个矩形的左下角和右上角的坐标,他们的游戏规则很简单,就是看谁先找出来这两个矩形的覆盖的总面积大小。你的问题就是帮助他们给出正确答案。
Input
输入的第一行为一个整数T,代表样例的组数。
每组样例包含4个坐标(x,y),( -100000000<= x,y <= 100000000 )前两个是小S给出的矩形左下角和右上角的坐标,后面两个是小D给出来的坐标。
Output
输出两个矩形覆盖的总面积大小。
Sample Input
3-2 -2 2 2 -2 -2 2 20 0 1 1 0 0 2 2-2 -2 2 2 1 -3 3 -1
Sample Output
16419
HINT
Source
#include <cstdio>#include <cstring>#include <vector>#include <algorithm>#include <queue>#include <vector>#include <set>#define LL long longusing namespace std;const int SIZE=1e0+50;const int maxn=1<<30;int main(){ int T; LL x[5],y[5]; scanf("%d",&T); for(int cas=1;cas<=T;cas++){ for(int i=1;i<=4;i++){ scanf("%lld%lld",&x[i],&y[i]); } LL s=(x[2]-x[1])*(y[2]-y[1])+(x[4]-x[3])*(y[4]-y[3]); LL w=(x[2]-x[1])+(x[4]-x[3])-max(max(x[1],x[2]),max(x[3],x[4]))+min(min(x[1],x[2]),min(x[3],x[4])); LL h=(y[2]-y[1])+(y[4]-y[3])-max(max(y[1],y[2]),max(y[3],y[4]))+min(min(y[1],y[2]),min(y[3],y[4])); if(w<=0||h<=0)printf("%lld\n",s); else printf("%lld\n",s-w*h); } return 0;}
0 0
- 1816: 矩形
- zzulioj 1816: 矩形 (技巧)
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- 矩形
- zzulioj--1816--矩形(好题数学)
- ZZULIOJ 1816: 矩形 【矩形重叠面积的计算(区分相离与相交)】
- 线段 矩形 矩形与矩形 相交
- StateListDrawable实现机制
- fetchrow_array()与fetchrow_arrayref()与fetchrow_hashref()的使用方法
- hdu 1003Max Sum(dp)
- Spring Bean的范围
- PropertyValuesHolder实现机制
- 1816: 矩形
- Java中日期时间的处理
- eclipse validate
- 从BaseActivity与BaseFragment的封装谈起
- c/c++ 复习随记----fwqlzz love is for ever
- 105. Construct Binary Tree from Preorder and Inorder Traversal
- MySQL查找数据库中是否存在表
- 【代码笔记】iOS-把<br!>换成\n
- Postgresql从源代码安装以及配置Stream Replication