博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2036 改革春风吹满地 数学题
阅读量:4704 次
发布时间:2019-06-10

本文共 804 字,大约阅读时间需要 2 分钟。

解题报告:

题目大意:给出一个多边形的各个定点的直角坐标,求出这个多边形的面积,给各个定点坐标时是按照逆时针顺序给出的。

这题麻烦的地方就是给出的多边形可以的凹的,如果不是这样就可以拆成多个三角形的面积的和,我一开始就是这样错了。

然后我听说线性代数里面有一个叫叉乘的方法可以求多边形的面积的方法,虽然我不能证明为什么这样可以,但这样的确太简单了,最后我还是用了,

叉乘就是利用把相邻的两个点的坐标进行叉乘,叉乘也就是求它们的向量积,然后把它们都加起来就可以了,最后要注意一点的是最后一点要跟第一个点叉乘一次,因为是相邻的点都要叉乘一次。

1 #include
2 3 int d[105][2]; 4 int main() { 5 int n; 6 while(scanf("%d",&n)&&n!=0) { 7 for(int i=1;i<=n;++i) 8 scanf("%d%d",&d[i][0],&d[i][1]); 9 d[n+1][0]=d[1][0],d[n+1][1]=d[1][1];10 double sum=0;11 for(int i=1;i<=n;++i)12 sum+=d[i+1][0]*d[i][1]-d[i][0]*d[i+1][1];13 if(sum<0)14 sum*=-1.0;15 printf("%.1lf\n",sum/2.0);16 }17 return 0;18 }
View Code

 

转载于:https://www.cnblogs.com/xiaxiaosheng/archive/2013/05/18/3084774.html

你可能感兴趣的文章
linux的定制和发布(一)
查看>>
多重继承和多继承
查看>>
根据样式往里添加动态数据
查看>>
Multiple Server Query Execution报The result set could not be merged..
查看>>
RMAN还原时注意set newname时文件名不要有空格
查看>>
一种链表的实现
查看>>
vue中ESlint报错
查看>>
NetCore2.0 RozarPage自动生成增删改查
查看>>
0816 1459 json & pickle ,目录导入,目录规范
查看>>
Alpha 冲刺 (10/10)
查看>>
哈希取余法、哈希表大小取质数的问题
查看>>
DataStage系列教程 (Pivot_Enterprise 行列转换)
查看>>
mysql常用操作
查看>>
对以内部 git 仓库为 composer 依赖的 package,加上版本号
查看>>
新生力量之我见
查看>>
一致性hash算法实现
查看>>
简化日常工作系列之一 ---- 自动新建每日记录
查看>>
【信号、图像、Matlab】如何得到高斯滤波器的整数模板
查看>>
[转]Vi 教程(Unix行编辑器)
查看>>
第4周小组作业:WordCount优化
查看>>