21.10.10模擬 排名
阿新 • • 發佈:2021-10-11
一共有n 道題,有m 個人來參加考試,已知我每道題在所有參賽選手中的排名,問n 道題加起來計算總分的排名最小可能值與最大可能值。
顯然(一點也不顯然)
總分A比總分B高當且僅當A的每道題都比B高
於是我們統計每場最多有多少人至少一場比我高,最多有多少人一場比我低即可
const int N = 1e3 + 79; const int M = 1e4 + 79; int rank[N]; int n, m; int main() { freopen("rank.in","r",stdin); freopen("rank.out","w",stdout); read(n); read(m); rep(i, 1, n) { read(rank[i]); } int tot(0); rep(i,1,n){ tot+=m-rank[i];//比我高的人的人數 } out(m-min(m-1,tot),'\n'); tot=0; rep(i,1,n){ tot+=rank[i]-1; } out(1+min(m-1,tot),'\n'); return 0; }
對於求最小的排名,我們假設我每個題都考1-eps分,總分就是n-eps,如果某人的某題分數比我小,那麼就當他爆0(0+eps),那麼這個人的總分肯定小於我(n-eps)。就相當於比我大的看做1分,比我小的當做0分.
本文來自部落格園,作者:{2519},轉載請註明原文連結:https://www.cnblogs.com/QQ2519/p/15392120.html