閱讀144 返回首頁    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的一些學習記錄