2020牛客暑期多校訓練營(第六場)K K Bag

2021-10-08 15:00:55 字數 1129 閱讀 2072

原題

題意即給出乙個序列和k,由若干個1-k的全排列組成的序列稱為k-bag,如123321132即為3-bag,k-bag的子串為part-k-bag,題目要求我們判斷給出的序列是否是part-k-bag。

題目中k有可能大於n。須知沒有必要將序列元素的大小儲存下來,只將相對大小作為值儲存下來就可以了。此題必須離散化,可以通過unordered_map離散化,但低版本的c++並不能使用這個容器,包括noip。離散化的另一種方法是先用sort排序,然後用unique去重,unique()函式的作用是將有序序列中重複的部分放到後面,並返回去重後最後乙個陣列的位址,其返回值減去陣列就是新序列的長度。

lower_bound()函式的作用則返回公升序序列第乙個大於等於待查詢元素的位置。

#include

#include

#include

#include

using

namespace std;

const

int maxn=

5e5+5;

int n,k,a[maxn]

,b[maxn]

,pre[maxn]

,len[maxn]

;int

main()

if(!flag)

sort

(b+1

,b+1

+n);

int cnt=

unique

(b+1

,b+1

+n)-b-1;

for(

int i=

1;i<=n;i++

)a[i]

=lower_bound

(b+1

,b+cnt+

1,a[i]

)-b;

int p=

1,t=0;

for(

int i=

1;i<=n;i++

)for

(int st=

1;st<=

min(k,len[1]

+1);st++)}

if(f)

}printf

(t?"yes\n"

:"no\n");

}}

2020牛客暑期多校訓練營 第六場

雖然題目沒有看懂,但是本場mvp浩大師發現了規律,f x 2x 12x f x 1 f x 1 over 2 x f x 1 f x 2 x2x 1 f x 1 然後把程式打出來就ac了。include using namespace std typedef long long ll const i...

2020牛客暑期多校訓練營(第六場)

2020牛客暑期多校訓練營 第六場 額,睡了一下午,直接錯過了比賽。b binary vector c combination of physics and maths d data structure e easy construction f fibonacci partition g grid...

2020牛客暑期多校訓練營(第六場)

總結 這一次還行,做題前面比較順利得出了兩題,但是後面不是很順利,團隊配合一般需要改進。cg k給你n和k,要求構造乙個1 n的數列滿足,對任意長度,都存在乙個連續區間滿足區間和sum n k。若存在則輸出這個數列,否則輸出 1。模擬。首先想到的就是先求1 n的和判斷是否是k 的整數倍,如果不是則直...