蒜頭君面前有一排 n
n 個木樁,木樁的高度分別是h_1,h_2,h_3\cdots h_nh1
,h2
,h3
⋯hn
。蒜頭第一步可以跳到任意乙個木樁,接下來的每一步蒜頭不能往回跳只能往前跳,並且跳下乙個木樁的高度 不大於 當前木樁。蒜頭君希望能踩到盡量多的木樁,請你幫蒜頭計算,最多能踩到多少個木樁。
第一行輸入乙個整數 n
n 代表木樁個數。第二行輸入 n
n 個整數 h_1,h_2,h_3\cdots h_nh1
,h2
,h3
⋯hn
,分別代表 n
n 個木樁的高度。(1 \leq n \leq 1000,1 \leq h_i \leq 1000001≤
n≤10
00,1
≤hi
≤100
000)
輸出乙個整數,代表最多能踩到的木樁個數,佔一行。
樣例輸入
63 6 4 1 4 2
樣例輸出
4
該題仔細想想就是lis的簡單變種,學過lis(最長上公升子串行)的同學都知道該如何解;
簡單解法就是倒置陣列 求該陣列的最長上公升子串行即可
ac**
#include #include using namespace std;
int main(){
int dp[10010],n,a[1010],tmp[1010],max=-1010;
memset(dp,0,sizeof(dp));
cin>>n;
for(int i=1;i<=n;i++)//初始化樁子
cin>>a[i];
for(int i=1;i<=n;i++)//倒置樁子 求最長上公升子串行
tmp[n-i+1]=a[i];
for(int i=1;i<=n;i++) {
dp[i]=1;
for(int j=1;j
計蒜客 蒜頭君的猜想
有一天蒜頭君突發奇想,他有乙個猜想,任意乙個大於 2 2 的偶數好像總能寫成 2 2 個質數的和。蒜頭君查了資料,發現這個猜想很早就被乙個叫哥德 的人提出來了,稱為哥德 猜想。目前還沒有證明這個猜想的正確性。蒜頭君告訴你乙個整數 n n 讓你用這個數去驗證。注意 1 1 不是質數。輸入乙個偶數 n ...
蒜頭君的兔子 計蒜客)
蒜頭君的兔子 題意 有個姓蒜的第一年有1對兔子,兔子到第二年之後每年會生一對兔子,到十歲的時候就會gg,為n年後有幾隻兔子。我一開始是直接維護了乙個0 10的陣列,分別表示0 10歲的兔子分別有多少個,每次暴力轉移。includeusing namespace std const int mod 1...
受歡迎的蒜頭 計蒜客
受歡迎的蒜頭 tarjan演算法 縮點 先把乙個圖的各個強連通分量求出 使用tarjan演算法 接著用縮點的形式構建乙個有向無環圖 把各個強連通分量看成乙個點,利用點與點之間的關係,構建乙個強連通分量之間的有向圖,而且這個圖一定是無環的圖 然後分析這個有向無環圖的出入度情況,出度為0,入度不為0,那...