POJ 1940 Polygon Programming with Ease(高斯消元)

原创 2015年07月08日 10:20:05

Description
给出中点求顶点,顶点个数为奇数
Input
多组输入,每组用例占一行,第一个数为顶点数量,之后2*n个数表示n个中点的坐标,以文件尾结束输入
Output
对于每组用例,输出由给出n个中点组成的多边形的顶点坐标,保留六位小数
Sample Input
5 14 2 20 4 18 12 12 18 10 10
3 -3 5 -2 5 -3 6
3 -2 10 5 10 -1 12
Sample Output
5 10.000000 2.000000 18.000000 2.000000 22.000000 6.000000 14.000000 18.000000 10.000000 18.000000
3 -4.000000 6.000000 -2.000000 4.000000 -2.000000 6.000000
3 -8.000000 12.000000 4.000000 8.000000 6.000000 12.000000
Solution
用高斯消元可以推出第一个顶点坐标,之后递推求出其他点坐标即可
Code

#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;
} 
版权声明:本文为博主原创文章,未经博主允许不得转载。

poj 1940 Wine Trading in Gergovia_贪心

有趣贪心题
  • neng18
  • neng18
  • 2014年02月28日 21:11
  • 656

POJ 1940 Polygon Programming with Ease(给出线段中点求端点+解简单方程)

POJ 1940 Polygon Programming with Ease(给出线段中点求端点) http://poj.org/problem?id=1940 题意: ZOJ 1974    ...

poj 1830 高斯消元

题意:有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为开就变为关,如果为关就变为开。你...
  • bllsll
  • bllsll
  • 2017年11月02日 09:34
  • 33

POJ 1222 EXTENDED LIGHTS OUT 枚举 || 高斯消元

题目大意就不说了,就是把棋盘上的1全变0即可 如果枚举的话,看似有2的30次方中可能,其实不是。 实际上只需要枚举第一行的状态即可,再往后,如果想要解决问题,必须根据第一行的状态推下去。 对于每...

POJ 2065 SETI 高斯消元

转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents           by---cxlove 依旧高斯消元,重要的是列方程...

poj1830 开关问题 高斯消元

Language: Default 开关问题 Time Limit: 1000MS   Memory Limit: 30000K Total Submissio...

poj 1222 EXTENDED LIGHTS OUT 高斯消元

高斯消元模板题 #include #include #include using namespace std; int equ = 30 , var = 30; int a[33][33]...

poj_1753_高斯消元

开心,总算过了,对于高斯消元的理解更深一步,这道题的重点在于,如果用高斯消元的话,最后一行是要枚举的,总共16种情况,因为不知道怎么枚举,当时卡了好久,其实在线性方程组中,我们可以当做缺少了四个方程,...

poj 2065 SETI (高斯消元)

SETI Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 2038   Accepted:...

poj 2065 SETI(高斯消元)

SETI Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 1469   Accepted:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1940 Polygon Programming with Ease(高斯消元)
举报原因:
原因补充:

(最多只允许输入30个字)