皇后遊戲
【引子】
還記得noip 2012 提高組day1 的國王遊戲嗎?時光飛逝,光陰荏苒,兩年
過去了。早已過時的國王遊戲如今已被皇后遊戲取代,請你來解決類似於國王遊
戲的另乙個問題。
【問題描述】
皇后有n 位大臣,每位大臣的左右手上面分別寫上了乙個正整數。恰逢勞動
節來臨,皇后決定為n 位大臣頒發獎金,其中第i 位大臣所獲得的獎金數目為第
i-1 位大臣所獲得獎金數目與前i 位大臣左手上的數的和的較大值再加上第i 位
大臣右手上的數。
當然,吝嗇的皇后並不希望太多的獎金被發給大臣,所以她想請你來重新安
排一下隊伍的順序,使得獲得獎金最多的大臣,所獲獎金數目盡可能的少。
注意:重新安排隊伍並不意味著一定要打亂順序,我們允許不改變任何一
位大臣的位置。
【輸入格式】
第一行包含乙個正整數t,表示測試資料的組數。
接下來t 個部分,每個部分的第一行包含乙個正整數n,表示大臣的數目。
每個部分接下來n 行中,每行兩個正整數,分別為ai 和bi,含義如上文所述。
【輸出格式】
共t 行,每行包含乙個整數,表示獲得獎金最多的大臣所獲得的獎金數目。
【樣例輸入1】13
4 12 2
1 2noi 2016 模擬訓練 皇后遊戲
第 3 頁 共 8 頁
【樣例輸出1】
8【樣例說明1】
按照 1、2、3這樣排列隊伍,獲得最多獎金的大臣數目為 10;
按照 1、3、2這樣排列隊伍,獲得 最多獎金的大臣獲得數目為 9;
按照 2、1、3這樣排列隊伍,獲得最多獎金的大臣數目為 9;
按照 2、3、1這樣排列隊伍,獲得最多獎金的大臣數目為 8;
按照 3、1、2這樣排列隊伍,獲得最多獎金的大臣數目為 9;
按照 3、2、1這樣排列隊伍,獲得最多獎金的大臣數目為 8。
當按照 3、2、1這樣排列隊伍時,三位大臣左右手的數分別為:
(1, 2)、(2, 2)、(4, 1)
第 1位大臣獲得的獎金為 1 + 2 = 3;
第 2位大臣獲得的獎金為 max + 2 = 5;
第 3為 大臣獲得的獎金max + 1 = 8。
【樣例輸入2】25
11 89
28 32
4 78
31 93
39 33
129 75
52 28
1 73
100 46
455 53
94 89
53 44
3 239 35
26 51
5 29
【樣例輸出2】
360535
對於全部測試資料滿足 :1 ≤ ai, bi ≤ 109。
這道題,呵呵,看似簡單,實則也有點簡單。
這是題解,我猜是個人都看不懂,甚至連什麼高考題都出來了。
但是感覺本人的思路還是很好的:
先對bi進行排序,因為它算的最終值中肯定有bi[i],也就是當前的bi的值,所以可以把所有陣列都初始化成每個bi的值。
當然,式子中還有第i-1 位大臣所獲得獎金數目與前i 位大臣左手上的數的和的較大值,所以由此可以推斷出這個終值中一定有上乙個的ai的值,所以最後只要比較當前的ai的值和上乙個bi的值哪個大就行。
**:
//#include
#include #include
#include
#include
#include
#include
#include
#include
#define mp make_pair
#define fi first
#define se second
using
namespace
std;
typedef
long
long
int64;
typedef pair
pii;
const
int maxn=200005;
intn;
pii a[maxn];
int64 dp[maxn];
inline
bool cmp(const pii &x,const pii &y)
intmain()
cout
}return0;
}
題解 八皇后問題
是乙個古老而著名的問題,是回溯演算法的典型案例。該問題是國際西洋棋棋手馬克斯 貝瑟爾於1848年提出 在8 8格的西洋棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有76種方案。1854年在柏林的象棋雜誌上不同的作者發表了40種不同的...
8皇后問題 解法 c
可根據更改line queennumberd的值,任意更改遊戲規則 include include include define line 8 define queennumber 8 void fun int i,int j bool judge int i,int j void print vo...
HDU 2553 N皇后問題(詳細題解)
這是一道深搜題目!問題的關鍵是在剪枝。下面我們對問題進行分析 1.一行只能放乙個皇后,所以我們一旦確定此處可以放皇后,那麼該行就只能放乙個皇后,下面的就不要再搜了。2.每一列只能放乙個皇后,所以我們下次搜尋就不要再搜已經放過的皇后了。3.斜的45 線也只能放乙個。綜上如何才能最快速的確定一列和45 ...