1. 程式人生 > >計蒜客 2018 藍橋杯省賽 B 組模擬賽(五) A. 結果填空:矩陣求和

計蒜客 2018 藍橋杯省賽 B 組模擬賽(五) A. 結果填空:矩陣求和

【題目連結】:https://nanti.jisuanke.com/t/25084

【題目描述】:給你一個 n×n 的矩陣,裡面填充 1n x n。例如當 n 等於 3 的時候,填充的矩陣如下。

1    2    3

4    5    6

7    8    9

現在我們把矩陣中的每條邊的中點連起來,這樣形成了一個新的矩形,請你計算一下這個新的矩形的覆蓋的數字的和。比如,n = 3 的時候矩形覆蓋的數字如下。

        2

4     5     6

       8

那麼當 n 等於 101 的時候,矩陣和是多少?

【解析】:這道題做了很多遍才做對,剛開始沒有理解題意,認為只是計算矩陣兩條邊就可以,其實題目中要求的是計算兩條邊為對角線的矩形所覆蓋的面積。


其中彩色部分為所求區域,我的思路是將彩色部分分成四部分,分別為左上,右上,左下,右下。四部分相加即可得到結果,其中粉色部分共加了兩次,黑色部分共加了四次,因此要減去一次粉色部分再減去的過程中也減去了兩次黑色部分,還要再減去一次黑色部分。

【答案】:26020201

【程式碼】:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = 1;
		int m = sc.nextInt();//輸入行列數
		int a[][] = new int[120][120];//將數儲存在二維陣列中
		for (int i = 1; i <= m; i++) {
			for (int j = 1; j <= m; j++) {
				a[i][j] = n;//賦值
				n++;
			}
		}
		int sum = 0;//求總和
		/**左上部分求和**/
		for (int i = 1; i <= (m + 1) / 2; i++)
			for (int j = (m + 1) / 2; j > (m + 1) / 2 - i; j--)
				sum += a[i][j];
		/**右上部分求和**/
		for (int i = 1; i <= (m + 1) / 2; i++)
			for (int j = (m + 1) / 2; j < (m + 1) / 2 + i; j++)
				sum += a[i][j];
		/**左下部分求和**/
		for (int i = (m + 1) / 2; i <= m; i++)
			for (int j = i - (m + 1) / 2 + 1; j <= (m + 1) / 2; j++)
				sum += a[i][j];
		/**右下部分求和**/
		int k = m;
		for (int i = (m + 1) / 2; i <= m; i++) {
			for (int j = (m + 1) / 2; j <= k; j++)
				sum += a[i][j];
			k--;
		}
		//求和時位於中點的兩條線共加了兩遍,因此要減去中間兩條線的和
		int sum1 = 0;
		for (int i = 1; i <= m; i++)
			sum1 += a[(m + 1) / 2][i] + a[i][(m + 1) / 2];
         //矩陣最中間的點共加了4遍,減去的兩條邊中有兩遍,因此要再減去一遍
		System.out.println(sum - sum1 - a[(m + 1) / 2][(m + 1) / 2]);
	}
}

相關推薦

2018 藍橋 B 模擬 A. 結果填空矩陣求和

【題目連結】:https://nanti.jisuanke.com/t/25084【題目描述】:給你一個 n×n 的矩陣,裡面填充 1到 n x n。例如當 n 等於 3 的時候,填充的矩陣如下。1    2    34    5    67    8    9現在我們把矩陣

2018藍橋B模擬題目及解析未完待續

一、題目列表 A. 結果填空:年齡         分值: 3 B. 結果填空:開關燈     分值: 7 C. 結果填空:U型數字  分值: 9 D. 程式碼填空:LIS         分值: 11 E. 程式碼填空:全排列   分值: 13 F. 結果填空:數獨  

找質數|2019藍橋 B 模擬

tdi -- com pre 省賽 cin sca %d pri 找質數 思路:數據大,用線性篩,篩選素數表,最後查表:題目讓我們查找相加等於n的兩個數,那麽我們就枚舉1個素數a,在素數表中查找是否存在n-a也是素數。 註意事項:數據大,不宜用輸入輸出流,cout、ci

廠年會|2019藍橋 B 模擬

int com 搬運 end for ima urn 省賽 stream 思路一:環形數組拆分成普通數組(通過搬運復制數據到尾部),再求前綴和,找出最大前綴和。因為枚舉了每一個起點 所以最大連續和也一定出現在前綴和中! 思路二: 代碼一:暴力,枚舉數組的起點,環形數組通

2019 藍橋 B 模擬一筆畫

names ans clas else std algorithm %d sed oid #include<iostream> #include<cstring> #include<cstdio> #include<a

信息學3月普及模擬

判斷 code 鏈接 cdc pin 技術 uwa names -418 A. 斷幺九 題目鏈接 分值:100 時間限制:1000ms 測試點數目:10 B. 銹湖  題目鏈接 分值:100 時間限制:2000ms 測試點數目:10

2018 藍橋 B 模擬題目題解

A.結果填空:矩陣求和#include <iostream> #include <stdio.h> using namespace std; const int n = 101; long long a[110][110]; int main()

2018 藍橋 B 模擬-天上的星星

在一個星光摧殘的夜晚,蒜頭君一顆一顆的數這天上的星星。 蒜頭君給在天上巧妙的畫了一個直角座標系,讓所有的星星都分佈在第一象。天上有 nn 顆星星,他能知道每一顆星星的座標和亮度。 現在,蒜頭君問自己 qq 次,每次

2018 藍橋 B 模擬-數列求值

樣例輸入1 1 50.50 25.50 10.15 樣例輸出1 27.85 樣例輸入2 2 -756.89 52.52 172.22 67.17 樣例輸出2 -761.49 #in

2018 藍橋 B 模擬-U型數字

最近蒜頭君喜歡上了U型數字,所謂U型數字,就是這個數字的每一位先嚴格單調遞減,後嚴格單調遞增。比如 212212 就是一個U型數字,但是 333333, 9898, 567567, 3131331313,就是不是U型數字。 現在

2018 藍橋 B 模擬-開關燈

蒜頭君今天回到了老家的大宅院,老家的燈還是那中拉線的燈(拉一次為亮,再拉一次就滅),蒜頭君覺得無聊。把 10001000 盞燈 33 的倍數拉了一次,55 的倍數拉了一次,7的倍數拉了一次(燈得的編號從 1-10001−1000,燈的

藍橋模擬題的部分題解

<A> 思路:按照題意暴力就行了,答案是1. AC程式碼: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxx = 1e5

2018 藍橋 B 模擬

1. 今天蒜頭君帶著花椰妹和朋友們一起聚會,當朋友們問起年齡的時候,蒜頭君打了一個啞謎(畢竟年齡是女孩子的隱私)說:“我的年齡是花椰妹年齡個位數和十位數之和的二倍”。 花椰妹看大家一臉懵逼,就知道大家也不知道蒜頭君的年齡,便連忙補充道:“我的年齡是蒜頭君個位數和十位數之和的三倍”。 請你計

2018 藍橋 B 模擬 結果填空連連看

連連看是一款非常有意思的遊戲。我們可以把任意兩個在圖的在邊界上的相同的方格一起消掉,比如把兩個 44 消掉以後,每次消掉兩個方格的時候,都有會獲得一個分數,第 ii 次消的分數為 i \timesi× 方格的值。比如上面的消法,是第一次消,獲得的分數為 1 \times 4

2018 藍橋 B 模擬矩陣求和

給你一個從 n×n 的矩陣,裡面填充 1 到 n×n 。例如當 n 等於 3 的時候,填充的矩陣如下。1 2 3 4 5 6 7 8 9現在我們把矩陣中的每條邊的中點連起來,這樣形成了一個新的矩形,請你

2018 藍橋 B 模擬

最長 題意 eof oid 開頭 strlen const style for循環 D. 代碼填空:LISLIS是最長上升子序列。什麽是最長上升子序列? 就是給你一個序列,請你在其中求出一段最長嚴格上升的部分,它不一定要連續。就像這樣:2, 3, 4, 7 和 2, 3,

2018南京網路 I Skr迴文樹

題目:給一串由0..9組成的數字字串,求所有不同迴文串的權值和。比如說“1121”這個串中有“1”,“2”,“11”,“121”三種迴文串,他們的權值分別是1,2,11,121。最終輸出ans=135。 思路:之前寫了馬拉車的演算法,網上看到的這個題是迴文樹的模板題。。。

2018藍橋C/C++ B——乘積尾零

題目大意 如下的10行資料,每行有10個整數,請你求出它們的乘積的末尾有多少個零? 5650 4542 3554 473 946 4114 3871 9073 90 4329

2018 藍橋 B 原題 C語言B 第二題 第九屆藍橋真題+答案+解析

這段資訊是(一共10個漢字):4 0 4 0 4 0 4 32 -1 -16 4 32 4 32 4 32 4 32 4 32 8 32 8 32 16 34 16 34 32 30 -64 0 16 64 16 64 34 68 127 126 66 -124 67 4 66 4 66 -124 126 1

2018藍橋C/C++ B——全球變暖

題目大意 你有一張某海域NxN畫素的照片,”.”表示海洋、”#”表示陸地,如下所示: ……. .##…. .##…. ….##. ..####. …###.