BNU 斩(超级大水题)
L. 斩
64-bit integer IO format: %lld Java class name: Main
在电影里面,我们经常可以看到武士们拔出刀,然后一刀斩下去,结果………………………………一张纸片被砍成了两半,囧…………
而在本题中,我们需要计算一下被斩下去较小的那一部分的面积。
我们假设纸片是矩形的,平行于坐标轴的,武士砍纸片的轨迹是一条直线。
Input
第一行一个整数N(2<=N<=350),表示数据组数。
接下来一行,每行7个整数,xl,yl,xr,yr,a,b,c ,表分别表示矩形左下角坐标(xl,yl),右上角坐标(xr,yr),以及轨迹方程ax+by+c=0。整数的绝对值均小于200。
Output
对于每一组数据,输出一个三位小数,表示砍后较小那部分的面积。数据保证这个面积大于0.001。
Sample Input
3 1 1 3 3 -1 1 0 1 1 3 4 -1 1 0 1 2 3 4 -1 1 0
Sample Output
2.000 2.000 0.500 | |思路:矩形有四条边 都延伸开---|----------|---------- | | ------|----------|------------直线ax+by+c=0 与它有四个交点 、找出四个交点的总哪两个是在矩形上的就可以算了(当时little yellow想出的方法和这不同 我听了1个多小时没懂 就不想写了)
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int t;
int main()
{int t;scanf("%d",&t);while(t--){double S,s;double x1,y1,x2,y2,a,b,c;double Xy1,Xy2,x1Y,x2Y;scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);scanf("%lf%lf%lf",&a,&b,&c);Xy1=(c+b*y1)*1.0/-a;//下边点Xy2=(c+b*y2)*1.0/-a;//上边点x1Y=(c+a*x1)*1.0/-b;//左边点x2Y=(c+a*x2)*1.0/-b;//右边点// cout<<Xy1<<" "<<Xy2<<" "<<x1Y<<" "<<x2Y<<endl;bool f1,f2,f3,f4;//判断在那条边f1=(Xy1>=x1)&&(Xy1<=x2);f2=(Xy2>=x1)&&(Xy2<=x2);f3=(x1Y>=y1)&&(x1Y<=y2);f4=(x2Y>=y1)&&(x2Y<=y2);/*梯形面积*/if(f1&&f2)//下上平行边{s=(Xy1+Xy2-2*x1)*(y2-y1)/2.0;}else if(f3&&f4)//左右平行边{s=(x1Y+x2Y-2*y1)*(x2-x1)/2.0;/**/}/*三角形面积*/else if(f1&&f3)//下左相交边{s=(Xy1-x1)*(x1Y-y1)/2.0;}else if(f1&&f4)//下右相交边{s=(x2-Xy1)*(x2Y-y1)/2.0;}else if(f2&&f3)//上左相交边{s=(Xy2-x1)*(y2-x1Y)/2.0;}else if(f2&&f4)//上右相交边{s=(x2-Xy2)*(y2-x2Y)/2.0;}S=fabs(y2-y1)*(x2-x1);s=min(s,S-s);printf("%.3lf\n",s);}
}
BNU 斩(超级大水题)相关推荐
- 超级大水题(还是自己过不了的水题)
题目链接:https://vjudge.net/contest/231314#problem/D Peter Parker wants to play a game with Dr. Octopus. ...
- 第三届山西省赛1004 一道大水题(scanf)
一道大水题 时间限制: C/C++ 2000ms; Java 4000ms 内存限制: 65535KB 通过次数: 44 总提交次数: 1020 问题描述 Dr. Pan作为上兰帝国ACM的总负责人, ...
- BNU OJ 第26303 题 Touchscreen Keyboard
BNU OJ第26303题Touchscreen Keyboard(题目链接)的解题报告. 原题如下: Touchscreen Keyboard Problem Description Nowaday ...
- 【数据结构】 最小生成树(四)——利用kruskal算法搞定例题×3+变形+一道大水题...
在这一专辑(最小生成树)中的上一期讲到了prim算法,但是prim算法比较难懂,为了避免看不懂,就先用kruskal算法写题吧,下面将会将三道例题,加一道变形,以及一道大水题,水到不用高级数据结构,建 ...
- [bzoj1529][POI2005]ska Piggy banks 大水题
1529: [POI2005]ska Piggy banks Time Limit: 5 Sec Memory Limit: 64 MB [Submit][Status][Discuss] Desc ...
- HDU 5752 Sqrt Bo【枚举,大水题】
Sqrt Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Total ...
- HDU 2895 贪心 还是 大水题
DESCRIPTION:大意是给你两个字符串.编辑距离只有add和delete会产生.所以.编辑距离最短一定是两个字符串的长度差.然后...呵呵呵呵.... 猜题意就可以了...但是...我觉得这个题 ...
- 八校联考第一场第二试 大水题
[题意] dzy 定义一个n^2 位的数的生成矩阵A 为一个大小为n*n 且Aij 为这个数的第i*n+j-n位的矩阵. 现在dzy 有一个数n^2 位的数k,他想知道所有小于等于k 的数的n*n 生 ...
- Codeforces div2 #499 B. Planning The Expedition 大水题
已经是水到一定程度了QAQ- Code: #include<cstdio> #include<algorithm> #include<cstring> using ...
- PAT甲题题解-1070. Mooncake (25)-排序,大水题
#include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...
最新文章
- SharpDevelop
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程...
- 用.NET CF进行HardReset?
- abap视图字段限制_MM03物料主数据视图中某些视图或者某些字段的控制方法 | 学步园...
- android简单小程序完整代码_10行代码实现小程序支付功能!丨实战
- Redis数据库(二)——数据类型
- Git rebase 和 Git merge 的区别,你知道吗?
- 基于环信sdk的陌生人交友php服务器代码开源
- Python 局部变量和全局变量 - Python零基础入门教程
- python 定时执行_python定时执行任务 轻量级
- java url 缩略图_java根据url生成网页截图,缩略图 | 学步园
- element ui中 el-table根据不同的值设置单元格背景色
- 5 月编程语言排行榜:C 重回第一,今年编程语言名人堂冠军还会是它吗? | 原力计划...
- Lync Server 2013 标准版部署(十)边缘服务器部署[三]
- pythonATM,购物车项目实战_补充5-interface接口
- python大数据培训好不好
- 2020.11.16-使用Arduino测速
- 格力悄悄上架“大松5G手机”董明珠又杀回手机圈了?
- 双控专业就业机器人_东北大学自动化双控考研专业就业方向
- C语言中的比较大小的宏定义与反斜杠符号 ' \ '
热门文章
- 解决mac pro中三指轻按翻译的功能不起作用
- 更高速 更智能 WLAN领域H3C再获领先——H3C发布新一代高性能802.11n 无线产品
- 2440 OV9650 C通道保存图片完全成功!顶!
- 我的同学总结关于linux
- Double得有效位
- 喇叭正反相位测试音频_音频功放失真的四大要点及改善方法
- zsh重启后环境变量失效
- idea 2019.2 svn 忽略文件/目录 .idea *.iml target log
- android 集成融云客服,第三方客服
- ubuntu18重启vncserver_Ubuntu 18.04 LTS安装vncserver虚拟网络控制台