乙個飛盤問題

2021-04-22 11:11:58 字數 1048 閱讀 4862

有不同幾個選手玩飛鏢遊戲,比賽後每局比分的比分都不是按固定順序排列的,也就是說每個人的每局得分序列並不是一致的,是混亂的.現在要根據每個選手的得分序列來**每個人的最大勝利數和最小勝利數。例子如下:

輸入:

3 3  (3個選手,3局比賽)

102 86 94  (第乙個選手的成績)

98 73 112  (第二個)

95 84 125  (第三個)

輸出:

0 2  (第乙個選手的最小勝利和最大勝利數)

0 2  (第二個)

1 2  (第三個)

下面是求最小勝利場數的演算法:

對總的元素和各位選手的得分分別排序(從高到低)

對每一位選手來說,若他的第n個得分(前n-1個得分大於這個得分),在總序列中的位置小於2×n,則他的最少勝場加1,否則加0;

對該選手的每乙個得分進行操作,就可以得出最少勝場數。

在本題目中,總的序列為

125,112,102,98,95,94,86,84,75

對第三位選手來說,他的第乙個得分125,在總序列中的位置為1(<2*1),則最少勝場數加1;他的第二個得分95,在總序列中的位置

為5(>2*2),則最少勝場數加0;他的第三個得分84,在總序列中的位置為8(>3*2),最少勝場加0;故他最少能勝一場。

對其他選手也可以類推

#include

#include

#include

#include

#include

using namespace std;

int minwin(const vector&a,vectorb)

return win;

}int main()

sort(data[i].begin(),data[i].end(),greater());

}sort(totalseq.begin(),totalseq.end(),greater());

for (size_t i=0;isystem("pause");

return 0;

}

組合問題乙個

100可以表示成多少個正整數之和?f m,n,p 表示n個不小於p的正整數之後為m的組合數 則顯然有邊界條件 f m,n,p 1,當n 1且m p f m,n,p 0,當mf m,n,p sum f m i,n 1,p i i 0 p i m i,m i n 1 若f m 表示m可以表示成若干正整數...

乙個小問題

error c2679 binary no operator defined which takes a right hand operand of type class smanip int or there is no acceptable conversion 除錯了好久,就是找不出問題在哪。...

乙個小問題。

drop table student create table student sno number 10 sname varchar2 10 sage int insert into student values 1,aa 21 insert into student values 1,aa 21...