向右看齊 棧

2022-09-03 06:00:12 字數 828 閱讀 8778

給出n

' role="presentation" style="position: relative">n

n條線段,輸出每條線段前面比它高並且離他最近的線段。

最簡單的暴力方法,o(

n2)' role="presentation" style="position: relative">o(n

2)o(

n2)列舉,預期得分50。

for(i=1;i

<=n;i++)

for(j=i;j

<=n;j++)

if(a[i]

[j])

這道題和 糟糕的一天 十分相似,也是單調棧。每次讀入乙個數就用它去匹配之前的讀入(儲存在棧裡面),並且po

p' role="presentation" style="position: relative">pop

pop掉。最終答案儲存在an

s' role="presentation" style="position: relative">ans

ans 陣列裡。

#include 

#include

using

namespace

std;

int n,ans[100001],a[100001];

stack

q;int main()

q.push(i);

}for (int i=1;i<=n;i++)

printf("%d\n",ans[i]);

return

0;}

向右看齊 (排序問題)

輸入資料有多行。第1 行是學生人數n,1 n 10000。接下來n 行是同學們的初始位置,每行2個整數x 和y,10000 x,y 10000。輸出同學們排成一行所需要移動的最少步數。5 1 22 2 1 33 2 3 38根據題意,要求所有士兵的最小移動步數,首先要找出他們需站成的水平佇列的第乙個...

P2947 向右看齊

約翰的n 1 n 10 5 頭奶牛站成一排,奶牛i的身高是hi l hi 1,000,000 現在,每只奶牛都在向右看齊 對於奶牛i,如果奶牛j滿足i第 1 行輸入 n,之後每行輸入乙個身高 h i。共 n 行,按順序每行輸出乙隻奶牛的最近仰望物件,如果沒有仰望物件,輸出 0。632 6112330...

理解c語言中的複雜宣告 向右看,向左看

c語言所有複雜的指標宣告,都是由各種宣告巢狀構成的。如何解讀複雜指標宣告呢?右左法則是乙個既著名又常用的方法。不過 右左法則其實並不是c標準裡面的內容,它是從c標準的宣告規定中歸納出來的方法。c標準的宣告規則,是用來解決如何建立聲 明的,而右左法則是用來解決如何辯識乙個宣告的,兩者可以說是相反的。右...