vijos P1007 绕钉子的长绳子

来源:互联网 发布:ssh 命令 端口 编辑:程序博客网 时间:2024/04/30 17:52

转载请注明出处:http://blog.csdn.net/a1dark

感觉头有点晕、水一题先、

分析:本是一道灰常水的题、不过刚开始我看错题了、以为题目要求算面积、感觉特么蛋疼、想水一题都不行、仔细一想不对呀、我明明是找的模拟题来水、怎么搞成计算几何这种蛋疼的题了、再次读题发现原来是求周长、递推一下发现规律、因为每个钉子都是一样大的、所以直接钉子周长+多边形周长、但是仔细想一下如果钉子不是一样大的、该怎么做呢?如果是求面积该怎么做呢?咳咳、值得深思、不过等以后我切到计算几何再来解决这个问题、

#include<stdio.h>#include<math.h>#include<string.h>#define p 3.1415926double x[1001];double y[1001];int main(){    int n,i;    double r,s;    while(scanf("%d%lf",&n,&r)!=EOF){s=0;        memset(x,0,sizeof(x));        memset(y,0,sizeof(y));        for(i=1;i<=n;i++)            scanf("%lf%lf",&x[i],&y[i]);s=2*p*r;        if(n==1){            printf("%.2lf\n",s);            continue;        }        x[n+1]=x[1];y[n+1]=y[1];        for(i=2;i<=n+1;i++)            s+=(sqrt(pow(x[i]-x[i-1],2)+pow(y[i]-y[i-1],2)));        printf("%.2lf\n",s);    }    return 0;}