才知道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 俗話說得...