這題問最長的嚴格連續遞增序列的最長長度是多少?
最開始感覺這道題不可做,因為有1e5個點,還有1e5的運算元
可是後來發現。。。這題水的一匹a[i]和y都是在1-100的範圍內部
不如這樣,我用乙個d[i]陣列記錄連續遞增的長度大小,用cnt[i]陣列表示陣列裡面這個長度的連續遞增序列的個數,由於這個序列a[i]範圍很小,因此最長連續的長度一點小於等於100,
我們可以直接改變單點值,後面減去這單點後面影響到的貢獻,再重新算新的貢獻即可
#include#include#include
#include
#include
using
namespace
std;
int a[100006
];int d[100006
];int cnt[105
];int
main()
else
cnt[d[i]]++;
}for (int i=100; i>=1; i--)
}intx,y;
d[1]=1
; cnt[
1]=0
;
for (int i=1; i<=m; i++)
else
cnt[d[j]]++;
}for (int j=100; j>=1; j--)}}
}return0;
}
牛客訓練賽25 A 因數個數
題目鏈結 無語。這題很迷啊,原諒我的菜,剛開始想用預處理尤拉篩和字首和,可是這題太血崩了,這樣一樣要遍歷,1 e9的範圍,後來翻網上題解,發現其實是個還算經典的問題 這題可以用離散和做嘛,如何離散和?先別著急,我們先想想,為啥這題不用尤拉函式做。我們平時尤拉函式的題,都還能算比較難的題了,這題不僅僅...
牛客訓練賽1
honoka和格點三角形 只有兩種三角形,底邊為2,高為1和底邊為1,高為2 1,直角三角形 4 n 1 m 2 4 n 2 m 1 2,底邊在x軸,為2 2 m 2 m 2 n 1 2,底邊在y軸,為2 2 n 2 n 2 m 1 3,底邊在x軸,為1 2 m 1 m 2 n 2 4,底邊在y軸,...
牛客練習賽25 最長區間
其中表示left len right len可以用乙個len i 表示 len i 表示包括i的在i之前的最長遞增序列 用len陣列可以很方便得記錄到從x往左的left len等於多少 然後向由可以推出right len cnt i 計算每乙個長度i的序列有多少個 其中 乙個i的子長度的序列也會記錄...