藍橋杯題解 幻方填空(全排列函式的應用)

2021-10-10 18:15:46 字數 1087 閱讀 4896

1. 題目:幻方填空

幻方是把一些數字填寫在方陣中,使得行、列、兩條對角線的數字之和都相等。

歐洲最著名的幻方是德國數學家、畫家迪勒創作的版畫《憂鬱》中給出的乙個4階幻方。

他把1,2,3,...16 這16個數字填寫在4 x 4的方格中。

如圖p1.jpg所示,即:

表中有些數字已經顯露出來,還有些用?和*代替。

請你計算出? 和 * 所代表的數字。並把 * 所代表的數字作為本題答案提交。

答案是乙個整數,請通過瀏覽器直接提交該數字。

注意:不要提交解答過程,或其它輔助說明類的內容。

解題思路:根據幻方的性質,如果列舉所有的情況則計算量是10! 所以完全可以使用暴力列舉。那麼如何快速的列舉10個數的全排列呢?就要用到c++中的乙個函式next_permutation().

關於函式next_permutation()的簡介

所在標頭檔案:#include< algorithm >

函式功能:判斷所給序列中是否還有下乙個全排列(即字典序的下乙個)

形參:陣列的起始指標和結尾的後乙個指標

返回值:如果有下乙個排列則返回true, 否則返回false

注意:這兩個函式都會改變區間陣列真實儲存的值

#include

#include

using

namespace std;

int a[10]

=;intf

(int a)

intmain()

while

(next_permutation

(a, a +10)

);// 利用函式列舉所有可能情況

return0;

}

題目答案:12

藍橋杯 幻方填空 Python

題目 幻方是把一些數字填寫在方陣中,使得行 列 兩條對角線的數字之和都相等。歐洲最著名的幻方是德國數學家 畫家迪勒創作的版畫 憂鬱 中給出的乙個4階幻方。他把1,2,3,16 這16個數字填寫在4 x 4的方格中。如圖p1.jpg所示,即 16 13 11 9 15 1 表中有些數字已經顯露出來,還...

藍橋杯 幻方填空 dfs 窮竭搜尋

全排列,暴力check 用手生敲,畢竟搞對映 量也少不到 去 配合草稿紙畫就完事了 打個純暴力可能也就10min 但是能騙出一道填空題 qaq也許搜尋會寫得更優美 然而 然而考場還是時間要緊叭 騙分主義.jpg include include include includeusing namespa...

第四屆藍橋杯 幻方填空

問題描述 幻方是把一些數字填寫在方陣中,使得行 列 兩條對角線的數字之和都相等。歐洲最著名的幻方是德國數學家 畫家迪勒創作的版畫 憂鬱 中給出的乙個4階幻方。他把 1,2,3,16 這16個數字填寫在 4 x 4 的方格中。表中有些數字已經顯露出來,還有些用 和 代替。請你計算出 和 所代表的數字。...