UVa 1643 Angle and Squares (计算几何)
计算 and UVa 几何
2023-09-11 14:17:18 时间
题意:有n个正方形和一个角(均在第一象限中),使这些正方形与这个角构成封闭的阴影区域,求阴影区域面积的最大值。
析:很容易知道只有所有的正方形的对角形在一条直线时,是最大的,然后根据数学关系,就容易得到答案。
代码如下:
#pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include <iostream> #include <cstring> #include <set> #include <queue> #include <algorithm> #include <vector> #include <map> #include <cctype> #include <cmath> #include <stack> #define print(a) printf("%d\n", (a)) #define freopenr freopen("in.txt", "r", stdin) #define freopenw freopen("out.txt", "w", stdout) using namespace std; typedef long long LL; typedef pair<int, int> P; const int INF = 0x3f3f3f3f; const double inf = 0x3f3f3f3f3f3f; const LL LNF = 0x3f3f3f3f3f3f; const double PI = acos(-1.0); const double eps = 1e-8; const int maxn = 1e3 + 5; const int mod = 1e9 + 7; const int dr[] = {-1, 0, 1, 0}; const int dc[] = {0, 1, 0, -1}; const char *Hex[] = {"0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111"}; int n, m; const int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; const int monn[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; inline int Min(int a, int b){ return a < b ? a : b; } inline int Max(int a, int b){ return a > b ? a : b; } inline LL Min(LL a, LL b){ return a < b ? a : b; } inline LL Max(LL a, LL b){ return a > b ? a : b; } inline bool is_in(int r, int c){ return r >= 0 && r < n && c >= 0 && c < m; } int main(){ double sq, s, ax, ay, bx, by; while(scanf("%d", &n) && n){ cin >> ax >> ay >> bx >> by; sq = 0.0, s = 0.0; for(int i = 0; i < n; i++){ double m; cin >> m; s += m * m; sq += m; } double k1 = ay / ax, k2 = by / bx; double x1 = fabs((k2+1)*sq/(k2-k1)), y1 = k1*x1; double x2 = fabs((k1+1)*sq/(k2-k1)), y2 = k2*x2; double area = fabs((x1*y2 - x2*y1) / 2.0); double sum = area - s/2.0; printf("%.3lf\n", sum); } return 0; }
相关文章
- 计算男孩女孩小孩各有几个 java——CSDN博客
- Java实现第八届蓝桥杯承压计算
- Java实现 蓝桥杯 算法提高 日期计算
- 网络号 = IP和子网掩码的每位数AND 主机号 掩码取反与IP地址and运算
- R-Sys.time计算程序运行时间
- SPSS详细教程:OR值的计算
- 肯德尔(Kendall)相关系数概述及Python计算例
- PCL 计算点云法向量并显示
- 7-12 计算工资 (15 分)
- 【阿里在线技术峰会】蒋晓伟:Blink计算引擎
- 【最优潮流】基于人工鱼群算法的最优潮流计算(Matlab代码实现)
- 蓝桥杯2011省赛——计算蔬菜总价(Java)
- 【华为云技术分享】边缘计算告诉你们公司空调怎么开最省钱
- IKEv2的密钥计算方式
- 习题 4.8 给出年、月、日,计算该日是该年的第几天。
- 关键路径的计算
- 阶乘的计算-递归思想
- 《多接入边缘计算(MEC)及关键技术》读书笔记 | 第4章 基于MEC的本地分流技术
- 软硬件项目集成 - 石头计算
- vue利用计算属性做(展开收起)(整理)