原題
題意即給出乙個序列和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 的整數倍,如果不是則直...