POJ 1939 Diplomatic License(求线段中点)
http://poj.org/problem?id=1939
题意: ZOJ1973
给你n(n>=3且n为奇数)个点的坐标,这n(按构成多边形的顺序输入的)个点必然构成一个多边形,要你按输入顺序输出这个多边形各边的中点坐标.
分析:
水题,直接按输入顺序求出中点坐标,然后输出即可.注意最后一个中点是输入的起点和终点的中点.
AC代码: C++提交,G++提交会超时.
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1000+5;
struct Point
{
double x,y;
Point(){}
Point(double x,double y):x(x),y(y){}
}P[maxn];
int main()
{
int n;
while(scanf("%d",&n)==1)
{
for(int i=0;i<n;++i) scanf("%lf%lf",&P[i].x,&P[i].y);
P[n]=P[0];
printf("%d",n);
for(int i=0;i<n;++i)
printf(" %.6lf %.6lf",(P[i].x+P[i+1].x)/2, (P[i].y+P[i+1].y)/2);
printf("\n");
}
return 0;
}