阅读144 返回首页    go 阿里云 go 技术社区[云栖]


【#define PI acos(-1.0)】【非凸包】poj 2365 Rope

这道题按顺序加起来就OK了。。。

唯一要注意的就是当N==1的时候,只输出一个钉子的周长就ok了。。。特殊处理下就可以了

看discuss,这道题好多人用凸包做,反而错,我现在标记一下,之后用凸包也试试。。。

另外就是#define PI acos(-1.0),可以定义π


#include <stdio.h>
#include<math.h>

#define PI acos(-1.0)

int main()
{
	int N;
	scanf("%d",&N);

	double R;
	scanf("%lf",&R);
	
	double x,y;
	double xx,yy;
	double firstX,firstY;
	scanf("%lf%lf",&xx,&yy);


	if (N==1)
	{
		printf("%.2lf\n",2*PI*R);
		return 0;
	}

	firstX=xx;
	firstY=yy;

	int i;
	double lenth=0;
	double tmpX,tmpY;
	for(i=1;i<N;i++)
	{
		scanf("%lf%lf",&x,&y);
		tmpX=x-xx;
		tmpY=y-yy;
		lenth+=sqrt(tmpX*tmpX+tmpY*tmpY);

		xx=x;
		yy=y;
	}

	tmpX=x-firstX;
	tmpY=y-firstY;
	lenth+=sqrt(tmpX*tmpX+tmpY*tmpY);

	lenth+=2*PI*R;

	printf("%.2lf\n",lenth);

	return 0;
}


最后更新:2017-04-03 05:39:57

  上一篇:go javascript中addEventListener(attachEvent)详解
  下一篇:go android View的一些学习记录