about:blank
題解Problem 1 : leader誰是組長
問題描述 八中信息組需要選一個組長。信息組一共有n個人,分別用1到n編號,其中m個人參與了投票。得票數(shù)過半(票數(shù)大于m div 2)的人將被選為組長。 輸入數(shù)據(jù)將告知這m個人分別將票投給了誰,請統(tǒng)計出誰將擔(dān)任八中信息組的組長。
輸入數(shù)據(jù) 第一行兩個數(shù)n和m。 第二行有m個數(shù),這些數(shù)都是不超過n的正整數(shù),表明這m個人的選擇。
輸出數(shù)據(jù) 輸出將被選為組長的人。如果沒有人的票數(shù)過半,請輸出-1。
輸入樣例7 47 7 2 7
輸出樣例7
時間限制 各測試點1秒
內(nèi)存限制 你的程序?qū)⒈环峙?0MB的運行空間
數(shù)據(jù)規(guī)模 1<=n<=maxlongint 1<=m<=10000題解: matrix67給出的方法是快排。然后一個O(m)的掃描即可。不過我沒有用這種方法。正巧前幾天看書看到了一道跟這題一模一樣的題。據(jù)說曾經(jīng)是ms的測試題。好了,回歸正題,這題題意無非就是m個數(shù),范圍都在1-n中間,其實n是無用的。然后會有一個數(shù)出現(xiàn)的次數(shù)>m div 2。我們假設(shè)這個數(shù)的值是s,那么每次從這組數(shù)里去掉兩個不同的數(shù),因為是不同的數(shù),則至多只可從這些數(shù)中去掉一個s,那么如此一直進(jìn)行下去。去到找不到兩個不同的數(shù)為止,則至少還會剩下一個s。當(dāng)然,這是極端情況,大多數(shù)情況下應(yīng)該會剩下不少s。復(fù)雜度為O(m)
Problem 2 : money最小花費
問題描述 在n個人中,某些人的銀行賬號之間可以互相轉(zhuǎn)賬。這些人之間轉(zhuǎn)賬的手續(xù)費各不相同。給定這些人之間轉(zhuǎn)賬時需要從轉(zhuǎn)賬金額里扣除百分之幾的手續(xù)費,請問A最少需要多少錢使得轉(zhuǎn)賬后B收到100元。
輸入數(shù)據(jù) 第一行輸入兩個正整數(shù)n,m,分別表示總?cè)藬?shù)和可以互相轉(zhuǎn)賬的人的對數(shù)。 以下m行每行輸入三個正整數(shù)x,y,z,表示標(biāo)號為x的人和標(biāo)號為y的人之間互相轉(zhuǎn)賬需要扣除z%的手續(xù)費 (z<100)。 最后一行輸入兩個正整數(shù)A,B。數(shù)據(jù)保證A與B之間可以直接或間接地轉(zhuǎn)賬。
輸出數(shù)據(jù) 輸出A使得B到賬100元最少需要的總費用。精確到小數(shù)點后8位。
輸入樣例3 31 2 12 3 21 3 31 3
輸出樣例103.07153164
數(shù)據(jù)規(guī)模 1<=n<=2000題解: 比較明顯的最短路徑模型。不過剛轉(zhuǎn)c++,我竟然不知道如何保留小數(shù)點后面的精度,所以這題就沒有寫精度。
Problem 3 : harm最小傷害
問題描述 把兒站在一個N x N的方陣中最左上角的格子里。他可以從一個格子走到它右邊和下邊的格子里。每一個格子都有一個傷害值。他想在受傷害最小的情況下走到方陣的最右下角。
輸入數(shù)據(jù) 第一行輸入一個正整數(shù)n。 以下n行描述該矩陣。矩陣中的數(shù)保證是不超過1000的正整數(shù)。
輸出數(shù)據(jù) 輸出最小傷害值。
樣例輸入31 3 32 2 23 1 2
樣例輸出8
數(shù)據(jù)規(guī)模 n<=1000題解:這題是更加明顯的動態(tài)規(guī)劃。直接上代碼……
Problem 4 : unique尋找代表
問題描述 八中一共有n個社團,分別用1到n編號。 八中一共有m個人,分別用1到m編號。每個人可以參加一個或多個社團,也可以不參加任何社團。 每個社團都需要選一個代表。我們希望更多的人能夠成為代表。
輸入數(shù)據(jù) 第一行輸入兩個數(shù)n和m。 以下n行每行若干個數(shù),這些數(shù)都是不超過m的正整數(shù)。其中第i行的數(shù)表示社團i的全部成員。每行用一個0結(jié)束。
輸出數(shù)據(jù) 輸出最多的能夠成為代表的人數(shù)。
樣例輸入4 41 2 01 2 01 2 01 2 3 4 0
樣例輸出3
數(shù)據(jù)范圍 n,m<=200題解:2分圖匹配,匈牙利算法。
posted on 2009-07-28 18:47 Vincent 閱讀(746) 評論(0) 編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法
Powered by: C++博客 Copyright © Vincent