关闭

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

368人阅读 评论(0) 收藏 举报
分类:

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;
} 
0
0
查看评论

zoj 1974 || poj 1940 Polygon Programming with Ease

1973是给出顶点求中点,这个是给出中点求顶点。和会升讨论了下,发现可以用一个顶点去替代所有顶点,然后解方程。后来我发现,如果是偶数点的话,最后那个顶点的坐标被消去了!不过还好,给的是奇数个顶点。#include #include #include #include #include...
  • zxy_snow
  • zxy_snow
  • 2011-05-01 14:14
  • 1480

POJ 1940 Polygon Programming with Ease 笔记

如图,已知虚线多边形,求实线多边形。
  • woniupengpeng
  • woniupengpeng
  • 2017-06-07 21:14
  • 54

POJ1753 Flip Game 高斯消元

题目链接:http://poj.org/problem?id=1753 题目大意:有一个4×4的棋盘,棋盘上每一点都有黑白两面,每次可以翻转任意一点,在翻转某一点时,该点上下左右的4个临近点同时也会被翻转,现在问你要使棋盘上所有点的颜色统一所需要的最小翻转次数。 分析:...
  • AC_Gibson
  • AC_Gibson
  • 2015-10-15 19:09
  • 719

poj 1222 高斯消元详解

题意 有一个5 * 6的矩阵,每个位置表示灯,1表示灯亮,0表示灯灭。 然后如果选定位置i,j点击,则位置i,j和其上下左右的灯的状态都会反转。 现在要你求出一个5 * 6的矩阵,1表示这个灯被点击过,0表示没有。 要求这个矩阵能够使得原矩阵的灯全灭。 非诚勿扰。 解析 来源 首先,...
  • u013508213
  • u013508213
  • 2015-08-03 22:34
  • 2352

【POJ1830】开关问题 高斯消元求自由元

题意:中文题。 题解: 呃,求自由元个数,然后输出1 如果无解输出那个题中给的串。 诶网上代码真不可看,我绝望了决定照自己想法随便写写。 然后49行没压行搞过去了。 网上全是100行+什么心态。 然后还复杂难看。 代码: #include #include #include #...
  • Vmurder
  • Vmurder
  • 2015-02-04 09:55
  • 1756

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

POJ 1940 Polygon Programming with Ease(给出线段中点求端点) http://poj.org/problem?id=1940 题意: ZOJ 1974        POJ1939是给出n个正好构成...
  • u013480600
  • u013480600
  • 2014-09-15 21:29
  • 796

POJ2007Scrambled Polygon

Language: Default Scrambled Polygon Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7629   Accepted: ...
  • R1986799047
  • R1986799047
  • 2015-09-06 18:15
  • 625

poj 1830 开关问题(高斯消元)

终止状态是从初始状态由开关组合影响而形成的,那么就有一个等式使得初始状态可以到达终止状态, 例如a,b,c三个开关 E[a] = (xa * mp[a][a]) ^ (xb * mp[a][b]) ^ (xc*map[a][c]) ^ S[a] E[b] = (xa * mp[b][a]) ^ (x...
  • ljd4305
  • ljd4305
  • 2013-09-27 16:56
  • 1901

poj1753 高斯消元

Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37055   Accepted: 16125 ...
  • Fun_Zero
  • Fun_Zero
  • 2016-01-29 00:46
  • 512

高斯消元几道入门题总结POJ1222&&POJ1681&&POJ1830&&POJ2065&&POJ3185

最近在搞高斯消元,反正这些题要么是我击败了它们,要么就是这些题把我给击败了。现在高斯消元专题部分还有很多题,先把几道很简单的入门题总结一下吧。 专题:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29538#overview 专题地址来...
  • u010885899
  • u010885899
  • 2015-11-11 15:30
  • 631
    个人资料
    • 访问:551273次
    • 积分:24522
    • 等级:
    • 排名:第317名
    • 原创:1943篇
    • 转载:0篇
    • 译文:0篇
    • 评论:68条
    最新评论