給定乙個長度為n的序列(n <= 1000) ,記該序列lis(最長上公升子串行)的長度為m,求該序列中有多少位置不相同的長度為m的嚴格上公升子串行。
先輸入乙個t,表明下面會有幾組資料。
每組資料先輸入乙個n,表明陣列大小。
下面一行有n個數代表該陣列,且 1<=a[i]<=n;
輸出為一行,只需輸出上述要求的個數(輸出保證結果小於2^31)。
3
21 2
41 2 4 4
5 1 2 3 4 5
1
21
分析:最長不下降自序列的變形,開始做這個題,未考慮的地方是很多的,例如想用桶排去重,卻忽略了如果相同元素不連續的狀態;改變去重方式,連續去重;尋找位置不同,意味著每個元素它前面的最長序列長度,若元素小於它,則都要累積到它身上,表示到此位置最長不下降子串行的所有可能(位置不同)
#include #include #include #include #include using namespace std;
int main()
}for (int j=0;ja[j] && f[j] == max)
}f[i]=max+1;
if (f[i] > ans)
}int sum=0;
for (int i=0;i
山科交流賽 擺箱子
有一堆形狀完全一樣的箱子,但是他們的強度不同,如果乙個箱子的強度為x,那麼這個箱子上面最多可以放x個箱子。現在我們已知一堆箱子的強度,我們想把這些箱子放置成一列一列的形狀,每一列包含多個箱子,問最少可以放多少列。輸入為多組資料,第一行為樣例數t 每組資料先輸入乙個n 1 n 100 表示箱子的總數 ...
山科OJ Problem B 向量的運算
problem b 向量的運算 time limit 1 sec memory limit 128 mb submit 3942 solved 2256 submit status description 編寫類vector 用於表示乙個向量。顯然 1.它有三個資料成員,假定均為 int型別的量,表...
ACM交流賽感悟
a題很水,字串匹配,提交好幾次都沒通過,後來老何提醒後,發現題意理解錯了,改過來之後,還是沒過 在敲 之前,一定要三個人統一一下思路,思路一樣的話,開敲 f題是簡單題,不過也提交了多次才過,這個是多組資料,題目說是一組測試資料,其實是多組測試資料 這個還有情可原 e題是最簡單的題,跟a b乙個性質,...