• hdu2036


    这是一道计算几何题目,用三小型分割多边形来求。开始我还比较迷糊,还想着考虑这考虑那,后来我发现根本不用考虑凹凸多边形的区别问题,因为有正有负,加起来结果必然是非负的。所以根本不用考虑那么多直接搞就行!或许在第n个点的时候要加到结果上的值是负的,但是在n+1,n+2...或者n+k个点的时候这个结果一定会补救回来,描述不太好描述,画个图理解理解就好了。挺好的题目。

     1 #include <stdio.h>
     2 struct point{
     3     int x,y;
     4 };
     5 struct vec{
     6     int x,y;
     7 };
     8 int mul_vec(vec a,vec b){
     9     return a.x*b.y - b.x*a.y;
    10 }
    11 double cal_vec(vec a,vec b){
    12     return (double)mul_vec(a,b)/2.0;
    13 }
    14 int main(){
    15     int n,i;
    16     point t[200],t1,t2,t3;
    17     vec v1,v2;
    18     double res;
    19     while(~scanf("%d",&n)&&n){
    20         res=0;
    21         for(i=1;i<=n;++i){
    22             scanf("%d%d",&t[i].x,&t[i].y);
    23         }
    24         t1=t[1];    t2=t[2];
    25         t[n+1]=t[1];
    26         for(i=3;i<=n+1;++i){
    27             t3=t[i];
    28             v1.x=t2.x-t1.x; v1.y=t2.y-t1.y;
    29             v2.x=t3.x-t2.x; v2.y=t3.y-t2.y;
    30             res+=(double)cal_vec(v1,v2);
    31             t2=t3;
    32         }
    33         printf("%.1lf
    ",res);
    34     }
    35     return 0;
    36 
    37 
    38 }
  • 相关阅读:
    响应式开发
    web作业小结
    js的简单数据类型和复杂数据类型
    JavaScript 字符串对象
    JavaScript 数组篇
    JavaScript 对象篇
    spfa优化
    HZNU Training 28 for Zhejiang Provincial Competition 2020
    [kuangbin带你飞]专题十一 网络流
    HZNU Training 26 for Zhejiang Provincial Competition 2020
  • 原文地址:https://www.cnblogs.com/symons1992/p/3403750.html
Copyright © 2020-2023  润新知