調了乙個下午只有八十分qaq md棄了不管了 對拍也沒拍出來 鬼知道是什麼資料把我卡了qaq
沒事我只是個sb而已 這題其實還是蠻正常的
做法其實很簡單 根據鏈剖的構造方法 你每次修改都是一段又一段的線段
那麼你只要求一下線段並起來後哪些地方被覆蓋了》=t次 不過要基數排序一波不然會t
#include#includeview code#include
#define ll long long
using
std::swap;
using
std::max;
const
int n=450007,m=30000000,b=1024
;int
read()
while(c>='
0'&&c<='9')
return ans*f;
}int
n,m;
int first[n],cnt=1
;struct nodee[2*n];
void ins(int a,int b); first[a]=cnt;}
void insert(int a,int
b)int dep[n],top[n],sz[n],son[n],mx[n],fa[n],id[n],idp=1
;void f1(intx)}
void f2(int x,int
tp)}
bool
ly;int
a,b,t,cntq;
int f[2*m];
struct posq[m];
bool cmp(pos a,pos b)
void
pcalc()
void modify(int x,int y,int
k) q[cntq++]=(pos);
q[cntq++]=(pos);
if(cntq>1e6&&ly)
x=fa[top[x]];
}if(id[x]>id[y]) swap(x,y);
if(!ly)
q[cntq++]=(pos);
q[cntq++]=(pos);
}int t[1257
];pos *s[1257],*mp;
pos bb[m];
void jsort(int
n)int
main()
for(int j=1;j<=b;j++)
q[cntq++]=(pos);
q[cntq++]=(pos);
if(cntq>1e6&&ly)
}if(t==0)
if(ly)
if(now>=t) ans=ans+n-q[cntq-1].r+1
; printf(
"%d\n
",ans);
}else
printf(
"%d\n
",ans);}}
return0;
}
北大資訊學夏令營模擬2019 5 21 神犇
時限 2s 空限 256mb 這題非常容易想到先做個字首和 a,b,c 分別表示三個人的粉絲數 不妨變成 a b,a c,b c 這樣相當於要從前面的字首中選個三維都不一樣的,使異或和最大。那麼這個可以暴力容斥地建出八種trie 每一維選和不選 然後自高位到低位的貪心,有的話走過去即可。注意如果有兩...
浴谷夏令營2017 8 1基礎數學知識的整理
1.1 排列 1.2 組合 c n,m c n 1,m c n 1,m 1 1.3 二項式定理 a b n c n,i a i b n i 例1.1組合數 快速冪1.4四種放球方法 1 n個不同球放入m個不同袋子 m n 2 n個相同球放入m個不同袋子 隔板法 c n m 1,m 1 3 n個相同球...
遼寧OI2016夏令營模擬T3 chess
放棋子 chess.pas c cpp 題目大意 現在有乙個 n m 的棋盤,現在你需要在棋盤上擺放 2n 個棋子,要求滿足如下條件 1 每一列只能有乙個棋子 2 每一行的前 xi 個格仔有乙個棋子,而且最多有乙個棋子 3 每一行的後 yi 個格仔有乙個棋子,而且最多有乙個棋子 求一共有多少種不同的...