Wannafly挑戰賽 19 A 佇列Q 思維

2021-08-21 06:46:08 字數 1054 閱讀 7254

這道題剛開始我的想法是用兩個棧分別去存first和last所操作的數,用map標記入棧的數,然後先將first棧中的數輸出,然後再遍歷陣列輸出沒有被標記的數,最後再輸出last棧中的數,雖然我覺得沒什麼問題吧,但是只過了5%的樣例。能ac的方法就是首先我們要從100000開始輸入資料(至於為什麼等會再說),然後用map去標記這個數的當前位置。然後進行操作的時候,如果是first我們就從100000往前存這個數,如果是last我們就從100000+n開始往後繼續存數,同時需要更新map的標記,最後我們只需要輸出map所標記的值就好了。

因為可能會有100000個first個操作,所以最開始輸入數的時候下標要大於等於100000...

emmmmm...先貼乙個我認為沒什麼毛病的**

過了5%樣例的**:

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

mapma;

int n,m;

int l = 100000;

int pre[300005];

int main()

else

} for(int i=l;i<=r;i++)

} return 0;

}

ac**:

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

mapma;

int n,m;

int l = 100000;

int pre[300005];

int main()

else

} int num = 0;

for(int i=l;i<=r;i++)

} return 0;

}

牛客 wannafly挑戰賽19 A 佇列

zzt 創造了乙個佇列 q。這個佇列包含了 n 個元素,佇列中的第 i 個元素用 qi 表示。q1 表示隊頭元素,qn 表示隊尾元素。佇列中的元素是 n 的乙個全排列。zzt 需要在這個佇列上執行 p 次操作,操作分兩種 first x 將元素 x 移到隊頭。last x 將元素 x 移到隊尾。在 ...

牛客Wannafly 挑戰賽19 A 佇列Q

zzt 創造了乙個佇列 q。這個佇列包含了 n 個元素,佇列中的第 i 個元素用 q i 表示。q 1 表示隊頭元素,q n 表示隊尾元素。佇列中的元素是 n 的乙個全排列。zzt 需要在這個佇列上執行 p 次操作,操作分兩種 first x 將元素 x 移到隊頭。last x 將元素 x 移到隊尾...

Wannafly挑戰賽19 F K串 莫隊

zzt 得到了乙個字串 s 以及乙個整數 k。wzh 在 1995 年提出了 優雅 k 串 的定義 這個字串每一種字元的個數都是 k 的倍數。現在 zzt 想要對字串進行 q 次詢問,第 i 次詢問給出乙個區間 li,ri 他想計算 li,ri 中有多少個子串是 優雅 k 串 由於 zzt 忙於工作...