模擬8 03 數顏色(vector 主席樹)

2022-05-06 22:48:09 字數 1792 閱讀 4784

才知道vector在插入值後是可以直接修改的...

那就很簡單了

用vector的lowerbound這樣的二分操作,提前儲存每個顏色的位置

發現交換相對位置不變

關於vector的lowerbound的講解(感謝qaq)

#include#include

#include

#include

#include

#include

#include

#include

#include

#define maxn 310001

#define int long long

#define ps push_back

using

namespace

std;

int n,m;vectorv[maxn];int

a[maxn];

int find(int l,int r,int

x)int kx(int l,int

x)signed main()

for(int i=1;i<=m;++i)

else

}}

還有主席樹做法(我怎麼沒想到.....)

ps:超時了,只是存板子(它竟然卡我....)

#include#include

#include

#include

#include

#include

#include

#include

#include

#define maxn 1000001

#define int long long

#define ps push_back

using

namespace

std;

struct

node

t[20*maxn];

int root[maxn];int

a[maxn];

int tot=0;int

n,m;

void insert(int &now,int l,int r,int x,int k,int

last)

if(x<=mid)insert(t[now].ls,l,mid,x,k,t[last].ls);

else insert(t[now].rs,mid+1

,r,x,k,t[last].rs);

}int query(int x,int l,int r,int

val)

int mid=(l+r)>>1

;

if(val<=mid)return

query(t[x].ls,l,mid,val);

else

return query(t[x].rs,mid+1

,r,val);

}int maxn=0

;signed main()

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

for(int i=1;i<=m;++i)

printf(

"%lld\n

",query(root[r],1,maxn,x)-query(root[l-1],1

,maxn,x));

}else

}}

模擬8 03 分組

好題 k 1做法 直接倒著找,滿足貪心性質,預處理出每個平方數就行.1 include2 include3 include 4 include5 include6 include7 include8 include 9 include10 define maxn 300001 11 define i...

模擬實現vector

include include using namespace std template class vector 向vector中存入size個元素 vector const t array,size t size start new t size endofstorage start size ...

NOIP2017模擬 洛谷3939 數顏色

題目背景 洛谷 mnoip 模擬賽 day1 洛谷3939 題目描述 小 c 的兔子不是雪白的,而是五彩繽紛的。每只兔子都有一種顏色,不同的兔子可能有 相同的顏色。小 c 把她標號從 1 到 nn 的 nn 只兔子排成長長的一排,來給他們喂胡蘿蔔吃。排列完成後,第 ii 只兔子的顏色是ai 俗話說得...