zoukankan      html  css  js  c++  java
  • POJ 1940 公式推导

    题意:

    给出中点求顶点(结合样例的图)。顶点个数是奇数

    题解:

    很容易想到高斯消元,然后他为什么强调是奇数?

    随便找一个奇数个点的多边形一推导,就可以直接推出其中一个待求点的坐标,然后即推算就可以了。

    偶数时就不行了。。。

    View Code
     1 #include <iostream>
     2 #include <cstdlib>
     3 #include <cstdio>
     4 #include <cstring>
     5 #include <algorithm>
     6 #include <cmath>
     7 
     8 #define N 1010
     9 
    10 using namespace std;
    11 //奇数条边的时候满足,偶数时不确定 
    12 struct PO
    13 {
    14     double x,y;
    15 }s[N],t[N];
    16 
    17 int n;
    18 
    19 inline void read()
    20 {
    21     for(int i=1;i<=n;i++) scanf("%lf%lf",&s[i].x,&s[i].y);
    22 }
    23 
    24 inline void go()
    25 {
    26     double a=0.0,b=0.0;
    27     for(int i=n;i>=1;i--)
    28     {
    29         if(i&1) a+=s[i].x,b+=s[i].y;
    30         else a-=s[i].x,b-=s[i].y;
    31     }
    32     t[1].x=a; t[1].y=b;
    33     for(int i=2;i<=n;i++)
    34     {
    35         t[i].x=t[i-1].x+2.0*(s[i-1].x-t[i-1].x);
    36         t[i].y=t[i-1].y+2.0*(s[i-1].y-t[i-1].y);
    37     }
    38     printf("%d",n);
    39     for(int i=1;i<=n;i++)
    40         printf(" %.6lf %.6lf",t[i].x,t[i].y);
    41     puts("");
    42 }
    43 
    44 int main()
    45 {
    46     while(scanf("%d",&n)!=EOF) read(),go();
    47     return 0;
    48 }
  • 相关阅读:
    stack 栈
    链表
    2018.09.08 DL24 Day1 总结
    10.07 WZZX Day2总结
    10.06 WZZX Day1总结
    Joseph问题 (线段树)
    [POI2006]TET-Tetris 3D
    10.05FZSZ Day2模拟总结
    Tarjan求LCA
    数据结构
  • 原文地址:https://www.cnblogs.com/proverbs/p/2924636.html
Copyright © 2011-2022 走看看