您的位置:首页 > 编程语言

HDU - 2036 改革春风吹满地

2017-11-11 09:17 281 查看
题目链接:

点击打开链接

/*
算是自己做的第一道计算几何的题目,之前因为还没学到这个知识点,好像是遇到这个知识点就跳过了...

查了许多题解,才明白该怎么写,以及为什么要这么写,其实主要就是一个公式,但是如果不知道这个公式,那就是不会做了...

罗列一下查阅的链接: https://www.cnblogs.com/double-win/archive/2013/05/03/Double_win.html https://www.cnblogs.com/mycapple/archive/2012/08/06/2624617.html https://www.cnblogs.com/cykun/archive/2010/11/25/1887461.html http://blog.csdn.net/u014436243/article/details/38875405
*/
#include <iostream>
#include <iomanip>
#define rep(i, k, n) for (int i = k; i < (n); i++)
using namespace std;
const int N = 105;
int x
, y
, n;
double getArea()
{
double s = 0.0;
rep(i, 0, n)
{
int tp = (i + 1) % n; // tp:: temp
s += x[i] * y[tp];
s -= x[tp] * y[i];
}
s /= 2;
return s > 0 ? s : -s;
}
int main()
{
while (cin >> n && n)
{
rep(i, 0, n) cin >> x[i] >> y[i];
cout << fixed << setprecision(1) << getArea() << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ACM 编程 HDU