山科交流賽 擺箱子

2021-07-11 13:42:13 字數 740 閱讀 5665

有一堆形狀完全一樣的箱子,但是他們的強度不同,如果乙個箱子的強度為x,那麼這個箱子上面最多可以放x個箱子。

現在我們已知一堆箱子的強度,我們想把這些箱子放置成一列一列的形狀,每一列包含多個箱子,問最少可以放多少列。

輸入為多組資料,第一行為樣例數t

每組資料先輸入乙個n(1<=n<=100),表示箱子的總數

緊接著輸入n個數x1,x2,x3...xn(0<=xi<=100),第i個數表示第i個箱子的強度

輸出只包含乙個整數,表示最少的列數

2

30 0 10

50 1 2 3 4

2

1

分析:貪心,很明顯的貪心問題,元素排序,開始時,是想先把大的放在最底下,之後以此類推,wa50%,看了題解,是先把小的放在下面,之後貪心ac。。。。(跪了,為什麼,這有什麼區別嗎。。。)

#include #include #include #include using namespace std;

int a[110],f[110];

int main()

{ int t;

cin>>t;

while (t--)

{int n;

cin>>n;

for (int i=0;i>a[i];

sort(a,a+n);

//for (int i=0;i

山科交流賽 LIS

給定乙個長度為n的序列 n 1000 記該序列lis 最長上公升子串行 的長度為m,求該序列中有多少位置不相同的長度為m的嚴格上公升子串行。先輸入乙個t,表明下面會有幾組資料。每組資料先輸入乙個n,表明陣列大小。下面一行有n個數代表該陣列,且 1 a i n 輸出為一行,只需輸出上述要求的個數 輸出...