HDU 2036 改革春风吹满地[多边形的面积]

news/2024/7/7 15:10:26

改革春风吹满地

时限:1000ms

Problem Description
“ 改革春风吹满地,
不会AC没关系;
实在不行回老家,
还有一亩三分地。
谢谢!(乐队奏乐)”
话说部分学生心态极好,每天就知道游戏,这次考试如此简单的题目,也是云里雾里,而且,还竟然来这么几句打油诗。
好呀,老师的责任就是帮你解决问题,既然想种田,那就分你一块。
这块田位于浙江省温州市苍南县灵溪镇林家铺子村,多边形形状的一块地,原本是linle 的,现在就准备送给你了。不过,任何事情都没有那么简单,你必须首先告诉我这块地到底有多少面积,如果回答正确才能真正得到这块地。
发愁了吧?就是要让你知道,种地也是需要AC知识的!以后还是好好练吧...
 
Input
输入数据包含多个测试实例,每个测试实例占一行,每行的开始是一个整数n(3<=n<=100),它表示多边形的边数(当然也是顶点数),然后是按照逆时针顺序给出的n个顶点的坐标(x1, y1, x2, y2... xn, yn),为了简化问题,这里的所有坐标都用整数表示。
输入数据中所有的整数都在32位整数范围内,n=0表示数据的结束,不做处理。
 
Output
对于每个测试实例,请输出对应的多边形面积,结果精确到小数点后一位小数。
每个实例的输出占一行。
 
Sample Input
3 0 0 1 0 0 1 4 1 0 0 1 -1 0 0 -1 0
 
Sample Output
0.5 2.0
 
这是一个模板题,利用叉积的几何意义,将多边形划分成一个个的三角形利用向量叉积求解,模板。 
#include <iostream>
#include <cmath>
#include <stdio.h>
using namespace std;
const double EPS = 1e-10;
const int maxn = 1002;
struct Point {
    double x, y;
    Point(double x=0, double y=0) :x(x), y(y) {}
} P[maxn];
typedef Point Vector;
Vector operator + (Vector A,Vector B) {return Point(A.x+B.x,A.y+B.y);}
Vector operator - (Vector A,Vector B) {return Point(A.x-B.x,A.y-B.y);}
Vector operator * (Vector A,double p) {return Point(A.x*p,A.y*p);}
Vector operator / (Vector A,double p) {return Point(A.x/p,A.y/p);}
double Cross(Point A,Point B) {return A.x*B.y-A.y*B.x;}
double PolygonArea(Point p[], int n) {
    double area = 0;
    for (int i = 1; i < n-1; i++) {
        area += Cross(p[i]-p[0], p[i+1]-p[0]);
    }
    return area/2;
}
int main(int argc, char const *argv[])
{
    int n;
    while (scanf("%d", &n), n) {
        for (int i = 0; i < n; i++) {
            scanf("%lf%lf", &P[i].x, &P[i].y);
        }
        printf("%.1lf\n", PolygonArea(P, n));
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/cniwoq/p/7257242.html


http://www.niftyadmin.cn/n/3617371.html

相关文章

codeforces 814B An express train to reveries

B. An express train to reveries time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output Sengoku still remembers the mysterious “colourful meteoroids” she discovered with Lala-chan when they were littl…

PLSQL_游标详解及游标过程

/************************************** 003 PL/SQL 游标 *****************************************/ /** 游标&#xff1a;三类&#xff1a;1隐性游标(SQL%FOUND.缺省写法存在、可以捕捉到、很少用) 2显式游标 3参照(REF)游标 操作步骤: 声明游标 -> 打开游标 -> …

LOJ#6511. 「雅礼集训 2018 Day8」B【线性规划对偶问题,费用流】

题目描述&#xff1a; 题目分析&#xff1a; 求最大费用可行流即可。路径的长度指路径上的tit_iti​之和。 对偶理论&#xff1a; 变量非负&#xff0c;约束不等式同号&#xff0c;下面这张图截自百度百科对偶理论 LOJ上有不二分的做法&#xff0c;8是太懂。。虽然上面这个做…

React.js 中的组件通信问题

引入 本来我是没想过总结这些东西的&#xff0c;会感觉比较入门。但是之前同学去腾讯面试问到了这个问题(react或vue的组件通信)&#xff0c;我帮他整理&#xff0c;顺便写demo的过程中&#xff0c;会有一些新的体会&#xff0c;多总结还是有利于进步的呀。 另外本次的代码都放…

linux命令行简记

打开终端快捷键 &#xff1a;CtrlAltT\texttt{CtrlAltT}CtrlAltT ls\text{ls}ls &#xff1a;显示当前目录下的文件 pwd\text{pwd}pwd &#xff1a;显示当前目录路径 cd xxx\text{cd xxx}cd xxx &#xff1a;转到 xxx\text{xxx}xxx 目录下 cd ..\text{cd ..}cd .. &#xff1a;…

hdu 4857 逃生 反向拓扑排序

糟糕的事情发生啦&#xff0c;现在大家都忙着逃命。但是逃命的通道很窄&#xff0c;大家只能排成一行。 现在有n个人&#xff0c;从1标号到n。同时有一些奇怪的约束条件&#xff0c;每个都形如&#xff1a;a必须在b之前。 同时&#xff0c;社会是不平等的&#xff0c;这些人…

预告:AI将如何重塑安防科技(格灵深瞳CEO赵勇主讲)丨硬创公开课

AI 技术的成熟&#xff0c;使得由人工智能来自动消化海量监控视频数据成为可能。目前&#xff0c;人工智能已经逐步渗透到安防行业&#xff0c;最终将会把以视频网络为核心的安防产业&#xff0c;重塑为以结构化数据为核心&#xff0c;以精确情报生产为目标的智慧物联网产业。 …

hdu 4858 项目管理 分块

转&#xff1a;http://blog.csdn.net/qwb492859377/article/details/46707425 一看到这题&#xff0c;首先会觉得非常像单点更新的线段树&#xff0c;但是却不怎么好操作 然后应该往分块的方向去想 因为只有m条边&#xff0c;所以所有点的度总和是2m,那么设度数>sqrt(m)的…