藍橋杯 ADV 151 金陵十三釵 (試題解析)

2021-10-07 05:32:00 字數 1243 閱讀 2601

提交此題

評測記錄

資源限制

時間限制:1.0s   記憶體限制:256.0mb

金陵十三釵

本題難度:難

本題占分比例:5%

問題描述

在電影《金陵十三釵》中有十二個秦淮河的女人要自我犧牲代替十二個女學生去赴日本人的死亡宴會。為了不讓日本人發現,自然需要一番喬裝打扮。但由於天生材質的原因,每個人和每個人之間的相似度是不同的。由於我們這是程式設計題,因此情況就變成了金陵n釵。給出n個女人和n個學生的相似度矩陣,求她們之間的匹配所能獲得的最大相似度。

所謂相似度矩陣是乙個n*n的二維陣列like[i][j]。其中i,j分別為女人的編號和學生的編號,皆從0到n-1編號。like[i][j]是乙個0到100的整數值,表示第i個女人和第j個學生的相似度,值越大相似度越大,比如0表示完全不相似,100表示百分之百一樣。每個女人都需要找乙個自己代替的女學生。

最終要使兩邊一一配對,形成乙個匹配。請程式設計找到一種匹配方案,使各對女人和女學生之間的相似度之和最大。

輸入格式

第一行乙個正整數n表示有n個秦淮河女人和n個女學生

接下來n行給出相似度,每行n個0到100的整數,依次對應二維矩陣的n行n列。

輸出格式

僅一行,乙個整數,表示可獲得的最大相似度。

樣例輸入

497 91 68 14

8 33 27 92

36 32 98 53

73 7 17 82

樣例輸出

資料規模和約定

對於70%的資料,n<=10

對於100%的資料,n<=13

樣例說明

最大相似度為91+92+93+73=354

解題思路:和n皇后問題很相似,都是遞迴遍歷可能出現的情況。本題是求最大值,所以,我翻了翻 n皇后 問題的筆記,改了改**。最後,跑了一下,執行超時了,跑了70分。可能需要剪枝,但目前還沒想到 該怎麼剪。。。未完待續。。。

**如下:

#include

#include

using namespace std;

int n;

int queenpos[16];

int like[16][16];

int res=0;

void nqueen(int k)

for(i=0;i

int main(int argc, char** ar**)

}nqueen(0);

cout

}

藍橋杯演算法提高 金陵十三釵

思路 這道題最基本的做法就是dfs直接暴力破解,這樣的複雜度毫無疑問的o n 是不能完全ac的.那麼,看到這道題問的是最優解,那麼想必跟動態規劃能扯上關係了,但是咋一看,轉移方程可不太好寫,一開始的時候我還寫了個錯的轉移式,妄想能在o n 2 內求解.言歸正傳,使用動態規劃的話,要注意的是 在為第 ...

藍橋杯 ADV 360 高精度減法(試題解析)

提交此題 評測記錄 資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 高精度減法 輸入格式 兩行,表示兩個非負整數a b,且有a b。輸出格式 一行,表示a與b的差 樣例輸入 1234567890987654321 9999 樣例輸出 解題思路 模擬。ac 如下 include i...

藍橋杯ADV 371 計數問題(試題解析)

提交此題 評測記錄 資源限制 時間限制 1.0s 記憶體限制 128.0mb 問題描述 試計算在區間 1 到 n 的所有整數中,數字 x 0 x 9 共出現了多少次?例如,在 1到 11 中,即在 1 2 3 4 5 6 7 8 9 10 11 中,數字 1 出現了 4 次。輸入格式 輸入檔名為 c...