hdoj2056(Rectangles 求矩形重叠面积
2015-11-07 02:35
246 查看
#include <cstdio> #include <algorithm> #define max(a,b) ( a>b ? a:b ) #define min(a,b) ( a<b ? a:b ) using namespace std; int main() { int i; double x[1000]; double y[1000]; double ans; while(scanf("%lf %lf",&x[1],&y[1])!=EOF) { for(int i=2;i<=4;i++) { scanf("%lf %lf",&x[i],&y[i]); } if( min(x[1],x[2])>=max(x[3],x[4]) || min(x[3],x[4])>=max(x[1],x[2]) ) { ans=0; } else if( min(y[1],y[2])>=max(y[3],y[4]) || min(y[3],y[4])>=max(y[1],y[2]) ) { ans=0; } else { //double len=min(x[2],x[4])-max(x[1],x[3]); //double height=min(y[2],y[4])-max(y[1],y[3]); sort(x+1,x+4+1); sort(y+1,y+4+1); double len=x[3]-x[2]; double height=y[3]-y[2]; ans=len*height; } printf("%.2f\n",ans); } return 0; }
已AC;
嗯 刚开始做这题时 脑子是空白的 后来参考了一些大牛的代码大概就想出来了。。。
矩形不重叠的情况很好分析 就不说了
而矩形如果重叠
注意对角线是从左下角到右上角 不管你矩形如何重叠谁上谁下谁左谁右 重叠的矩形的长依然是第三大的x减去第二大的x
高依然是第三大的y减去第二大的y
所以排个序 然后就做出来了。。。
附上原代码网址http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=21781&messageid=1&deep=0
相关文章推荐
- storyboard presentViewController pushViewController 跳转后黑屏 NavigationBar按钮push
- iOS远程推送
- php探针代码
- 内存映射 madvise mmap
- explaining of genotyping and DNA resequencing and variant calling
- AVAYA完成北电企业网收购 30天内公布更多细节
- Java任意同类型对象的复制
- 北电收购Pingtel 志在统一通信
- 关于在storyboard中使用静态cell的注意事项
- 公钥与私钥
- eZuce推出纯软统一通信解决方案openUC
- SQL Interview Question
- Sipfoundry创始人-Martin J. Steinmann
- tomcat发布在阿里云上,优化JVM启动参数。。
- 关于presentViewController的后的background变黑的问题
- springmvc的Ajax提交问题
- Foundation框架- NSString用法
- oc必须知道的知识点
- Mysql学习笔记
- jenkins构建war失败 代码编译出现(illegal character: \65279)