码迷,mamicode.com
首页 > 其他好文 > 详细

矩阵求和

时间:2018-03-30 21:49:56      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:组成   log   中间   info   namespace   意思   out   图片   分享图片   

技术分享图片

 

 第一次做时理解错了题意,只算了中间对角线构成的十字形,题目真正的意思是由边abcd的中点依次连接组成的矩形所包含的所有点的值的和。

可以将这个矩形看成被一个十字形分成了四个象限,然后分别求出四个象限的和,加在一起后十字形被加了两次,中间十字焦点被加了四次,则我们减掉一次十字形,两次焦点即为总面积。

 

 AC代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int a[110][110];
 5 
 6 int main(){
 7     int cnt=1;
 8     for(int i=1;i<=101;i++){
 9         for(int j=1;j<=101;j++){
10             a[i][j]=cnt++;
11         }
12     }
13     /*for(int i=1;i<=101;i++){
14         for(int j=1;j<=101;j++){
15             cout<<a[i][j]<<" ";
16         }cout<<endl;
17     }*/
18     cnt=0;
19     int sum=0;
20     for(int i=1;i<=101;i++){
21         sum+=a[i][51];
22         sum+=a[51][i];
23     }
24     for(int i=1;i<=51;i++){
25         for(int j=51;j>51-i;j--){
26             cnt+=a[i][j];
27         }
28     }
29     for(int i=1;i<=51;i++){
30         for(int j=51;j<51+i;j++){
31             cnt+=a[i][j]; 
32         }
33     }
34     for(int i=51;i<=101;i++){
35         for(int j=51;j>i-51;j--){
36             cnt+=a[i][j];
37         }    
38     }
39     for(int i=51;i<=101;i++){
40         for(int j=51;j<=152-i;j++){
41             cnt+=a[i][j];
42         }
43     }
44     cnt-=sum;
45     cnt-=a[51][51];
46     cout<<cnt<<endl;
47     return 0;
48 }

 

矩阵求和

标签:组成   log   中间   info   namespace   意思   out   图片   分享图片   

原文地址:https://www.cnblogs.com/Kiven5197/p/8678280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!