1 条题解

  • 0
    @ 2025-5-25 17:51:53
    #include<cstdio>
    #include<iostream>
    double x[1010],y[1010],xx[1010],yy[1010];
    int main()
    {
    	int n;
    	while(scanf("%d",&n)!=EOF)
    	{
    		int i;
    		double a=0,b=0;//注意初始化 
    		for(i=1;i<=n;i++)
    			scanf("%lf%lf",&x[i],&y[i]);
    		printf("%d",n);//按格式输出 
    		for(i=1;i<=n;i++)//用高斯消元求出第一个点的坐标 
    		{
    			if(i&1)
    				a+=x[i],b+=y[i];
    			else
    				a-=x[i],b-=y[i];
    		}
    		xx[1]=a;
    		yy[1]=b;
    		for(i=2;i<=n;i++)//递推求出其他点坐标 
    		{
    			xx[i]=xx[i-1]+2.0*(x[i-1]-xx[i-1]);
    			yy[i]=yy[i-1]+2.0*(y[i-1]-yy[i-1]);
    		}
    		for(i=1;i<=n;i++)
    			printf(" %.6lf %.6lf",xx[i],yy[i]);
    		printf("\n");
    	}
    	return 0;
    } 
    
    • 1

    信息

    ID
    941
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    1
    已通过
    1
    上传者