csps模擬68d,e,f題解

2022-04-14 06:11:19 字數 2180 閱讀 8917

題面:

三道資料結構?

d:貪心,先按a排序,然後列舉刪了前i個a值比較小的,然後在剩下的裡面刪m-i個b小的,然後統計答案

用主席樹查b排名(m-i+1)或用堆維護b

#include#include

#include

#include

#include

#define int long long

using

namespace

std;

const

int maxn=1e5+5

;int

read()

returnx;}

intt,n,m,ans;

struct

node

}sq[maxn];

priority_queue

q;signed main()

}printf(

"%lld\n

",ans);

}return0;

}

#include#include

#include

#include

#define int long long

using

namespace

std;

const

int maxn=1e5+5

;int

read()

returnx;}

int t,n,m,ans,mx=0

;struct

node

}sq[maxn];

int root[maxn],tot=0

;struct

chairman_treetr[maxn

<<6

];void insert(int &now,int pre,int l,int r,int

pos)

int query(int x,int y,int l,int r,int

num)

signed main()

return0;

}

主席樹e:

開始學***樹上樹

不難看出是在每個詢問點到所有詢問點的lca路徑上的前趨後繼,然後就打的測試點分治和暴力

新知識:樹上主席樹,維護每個節點到根的字首主席樹,然後區間查詢前趨後繼

查前趨:

當前mid比val大,去右區間查詢,但是會有一種情況:val等於mid+1,但主席樹中沒有mid+1,這時特判一下去找左區間

後繼同理

#include#include#include#include#define int long long

using namespace std;

int read()

return x;

}const int maxn=1e5+5;

int n,q,typ,a[maxn],ans=0,p[maxn],b[maxn],mx;

int to[maxn<<1],nxt[maxn<<1],pre[maxn],cnt=0;

void add(int u,int v)

int root[maxn],tot=0;

struct nodetr[maxn<<6];

void insert(int &now,int pre,int l,int r,int val)

int get_pre(int x,int y,int l,int r,int val)else res=get_pre(tr[x].ls,tr[y].ls,l,mid,val);

return res;

}int get_nxt(int x,int y,int l,int r,int val)else res=get_nxt(tr[x].rs,tr[y].rs,mid+1,r,val);

return res;

}int deep[maxn],fa[maxn],siz[maxn],son[maxn];

void dfs(int x)

signed main(){

n=read(),q=read(),typ=read();

for(int i=1;i<=n;++i) a[i]=read(),mx=max(mx,a[i]);

for(int i=1,u,v;if:

不會了,打的暴力樹狀陣列逆序對

CSP S模擬測試94 題解

高精硬上似乎跑不過,其實可以都取個 log 那麼只需要比較 y times log x 和 sum limits y log i 就好了。includeusing namespace std int t double x,y void work int main 顯然目標區間合法的充要條件是 把位置...

CSP S模擬測試69 題解

一如既往的垃圾,又回到了那個場場墊底的自己,明明考場上都想到正解了,但是就是拿不到分,可能是互奶把rp用光了吧以後一定加強訓練 能力。t1 考場上一直yy矩陣快速冪,雖然自己矩陣快速冪一點都不會還是硬著頭皮yy,發現不可做之後並沒有及時轉化思路,但其實自己預處理的陣列就是正解。切記 不僅矩陣快速冪是...

CSP S 模擬測試 51 題解

慣例先看一遍三道題,t1 一開始反應要求割點,但是這是有向圖,肯定不能求割點,康了一下資料範圍,有40 是樹的,還不錯,決定待會在打。看t2 字串題,完了我字串最弱了,肯定只能打暴力了,帶著前兩題都不會的心情,看了t3發現是期望,完了爆0了,在一看,發現是sb原題,還簡單一點,趕緊把t3碼了一遍過大...