2010年1月27日星期三.sgu136
2010年1月27日星期三.sgu136sgu136:高斯消元的特殊形式
題目給出了一個(gè)n邊形每個(gè)邊的中點(diǎn),也就相當(dāng)于給出了兩組方程。
(+) x0 + x1 = in[0][0]
(-) x1 + x2 = in[1][0]
(+) x2 + x3 = in[2][0]
(-) x3 + x0 = in[3][0]
(+) y0 + y1 = in[0][1]
(-) y1 + y2 = in[1][1]
(+) y2 + y3 = in[2][1]
(-) y3 + y0 = in[3][1]
然后對(duì)于這兩組方程,分別按照奇偶關(guān)系,直接將四組值奇加偶減
直接求出x0,y0,
然后分別帶入下面的式子挨個(gè)計(jì)算即可。
1 int main()
2 {
3 int i,j,k;
4 scanf("%d",&n);
5 for (i = 1;i <= n;i++) {
6 scanf("%lf %lf",x + i,y + i);
7 x[i] *= 2;
8 y[i] *= 2;
9 }
10
11 for (i = 1;i <= n;i++) {
12 if(i & 1) {
13 rx[0] += x[i];
14 ry[0] += y[i];
15 }else {
16 rx[0] -= x[i];
17 ry[0] -= y[i];
18 }
19 }
20
21 if (n & 1) {
22 puts("YES");
23 rx[0] /= 2, ry[0] /= 2;
24 for (i = 1;i < n;i++) { rx[i] = x[i] - rx[i-1]; }
25 for (i = 1;i < n;i++) { ry[i] = y[i] - ry[i-1]; }
26 for (i = 0;i < n;i++) {
27 printf("%f %f\n",rx[i],ry[i]);
28 }
29 } else if((n & 1) == 0 && rx[0] == 0 && ry[0] == 0) {
30 puts("YES");
31 for (i = 1;i < n;i++) { rx[i] = x[i] - rx[i-1]; }
32 for (i = 1;i < n;i++) { ry[i] = y[i] - ry[i-1]; }
33 for (i = 0;i < n;i++) {
34 printf("%f %f\n",rx[i],ry[i]);
35 }
36 } else {
37 printf("NO\n");
38 }
39 return 0;
40 }
41
2 {
3 int i,j,k;
4 scanf("%d",&n);
5 for (i = 1;i <= n;i++) {
6 scanf("%lf %lf",x + i,y + i);
7 x[i] *= 2;
8 y[i] *= 2;
9 }
10
11 for (i = 1;i <= n;i++) {
12 if(i & 1) {
13 rx[0] += x[i];
14 ry[0] += y[i];
15 }else {
16 rx[0] -= x[i];
17 ry[0] -= y[i];
18 }
19 }
20
21 if (n & 1) {
22 puts("YES");
23 rx[0] /= 2, ry[0] /= 2;
24 for (i = 1;i < n;i++) { rx[i] = x[i] - rx[i-1]; }
25 for (i = 1;i < n;i++) { ry[i] = y[i] - ry[i-1]; }
26 for (i = 0;i < n;i++) {
27 printf("%f %f\n",rx[i],ry[i]);
28 }
29 } else if((n & 1) == 0 && rx[0] == 0 && ry[0] == 0) {
30 puts("YES");
31 for (i = 1;i < n;i++) { rx[i] = x[i] - rx[i-1]; }
32 for (i = 1;i < n;i++) { ry[i] = y[i] - ry[i-1]; }
33 for (i = 0;i < n;i++) {
34 printf("%f %f\n",rx[i],ry[i]);
35 }
36 } else {
37 printf("NO\n");
38 }
39 return 0;
40 }
41
posted on 2010-01-28 21:29 schindlerlee 閱讀(1036) 評(píng)論(0) 編輯 收藏 引用 所屬分類: 解題報(bào)告