題目1007:奧運排序問題
時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
提交:9450
解決:2044
題目描述:按要求,給國家進行排名。
輸入:有多組資料。
第一行給出國家數n,要求排名的國家數m,國家號從0到n-1。
第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數(百萬)。
接下來一行給出m個國家號。
輸出:排序有4種方式: 金牌總數 獎牌總數 金牌人口比例 獎牌人口比例
對每個國家給出最佳排名排名方式 和 最終排名
格式為: 排名:排名方式
如果有相同的最終排名,則輸出排名方式最小的那種排名,對於排名方式,金牌總數 < 獎牌總數 < 金牌人口比例 < 獎牌人口比例
如果有並列排名的情況,即如果出現金牌總數為 100,90,90,80.則排名為1,2,2,4.
每組資料後加乙個空行。
樣例輸入:
4 44 8 1
6 6 2
4 8 2
2 12 4
0 1 2 3
4 28 10 1
8 11 2
8 12 3
8 13 4
0 3
樣例輸出:
1:31:12:1
1:21:1
1:1
2023年浙江大學計算機及軟體工程研究生機試真題
答疑:
** :[注]使用了函式指標和函式指標陣列
#include #include using namespace std;
const int inf(0x7fffffff);
struct best_rank
best_rank(int r, int w)
};inline bool operator < (const best_rank &one, const best_rank &another)
return one.way < another.way;
}struct nation;
int n, m;
const int maxn(1e5 + 10);
nation all_nations[maxn];
nation nations[maxn];
bool cmp1(nation one, nation another)
bool cmp2(nation one, nation another)
bool c***(nation one, nation another)
bool cmp4(nation one, nation another)
bool cmp5(nation one, nation another)
void update(int way, bool (*cmp)(nation one, nation another))
for(int i = 1; i < m; i++)
else
}}int main()
int index;
for(int i = 0; i < m; i++)
bool (*cmp[4])(nation one, nation another) = ;
for(int i = 0; i < 4; i++)
sort(nations, nations + m, cmp5);
for(int i = 0; i < m; i++)
puts("");
}return 0;
}
王道機試 排序 奧運排序問題 浙江大學
這絕對是我寫過邏輯最複雜的乙個題目,主要注意並列排序函式,另外由於獎牌人口比和金牌人口比,涉及到除法,而這乙個題目又嚴格要求排序,所以最後想的辦法是用浮點數來儲存。原本想將四個並列排序函式整合整乙個,但由於我用的是結構體儲存排序結構,而非陣列,並沒有想到很好的整合方式。雖然看上去 龐大,但是邏輯清晰...
36 奧運排序問題 浙大複試 c
按要求,給國家進行排名。有多組資料。第一行給出國家數n,要求排名的國家數m,國家號從0到n 1。第二行開始的n行給定國家或地區的奧運金牌數,獎牌數,人口數 百萬 接下來一行給出m個國家號。排序有4種方式 金牌總數 獎牌總數 金牌人口比例 獎牌人口比例 對每個國家給出最佳排名排名方式 和 最終排名 格...
2010北航機試
均為自做 1.題目描述 利用泰勒公式求cos x 1 x2 2 x4 4 include include include double jiecheng int k return result int main while temp 1e 6 printf lf n result return0 2...