比較容易想的題目~
容易發現 點亮一種顏色的貢獻=新增燈的數量-已經存在的邊的條數。
用線段樹維護並不容易。暴力的話複雜度是\(q\cdot n\)的。
考慮根號分治 只單純考慮度數考慮大於b的點的話 需要思考一下貢獻如何快速求出。
這類點顯然只有\(\frac\)個 統計大於對大於的點的話複雜度o(b).
考慮大於和小於的貢獻發現不能暴力了 考慮這個小於其實是之前的小於的點對當前的貢獻。
那麼當前的小於可以提前對這些點的貢獻進行統計就可以o(1)了。
那麼此時\(b\cdot q+\frac\cdot q\)當b取\(\sqrt\)時最優。
code
//#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long long
#define db double
#define inf 10000000000000010ll
#define ldb long double
#define pb push_back
#define put_(x) printf("%d ",x);
#define get(x) x=read()
#define gt(x) scanf("%d",&x)
#define gi(x) scanf("%lf",&x)
#define put(x) printf("%d\n",x)
#define putl(x) printf("%lld\n",x)
#define gc(a) scanf("%s",a+1)
#define rep(p,n,i) for(re int i=p;i<=n;++i)
#define go(x) for(int i=lin[x],tn=ver[i];i;tn=ver[i=nex[i]])
#define fep(n,p,i) for(re int i=n;i>=p;--i)
#define vep(p,n,i) for(re int i=p;i#define mk make_pair
#define re register
#define p 1000000007
#define gf(x) scanf("%lf",&x)
#define pf(x) ((x)*(x))
#define uint unsigned long long
#define ui unsigned
#define eps 1e-8
#define sq sqrt
#define s second
#define f first
#define mod 1000000007
using namespace std;
char buf[1<<15],*fs,*ft;
inline char getc()
inline int read()
while(ch>='0'&&ch<='9')
return x*f;
}const int maxn=100010,maxn=410;
int b,n,q,m,ans,id,len;
int out[maxn],c[maxn],a[maxn],pos[maxn],vis[maxn];
int lin[maxn],ver[maxn<<1],nex[maxn<<1],e[maxn<<1];
int res[maxn],s[maxn],b[maxn][maxn];
maph[maxn];
map::iterator it;
inline void add(int x,int y,int z)
int main()
} rep(1,m,i)for(it=h[i].begin();it!=h[i].end();++it)add(i,(*it).f,(*it).s);
rep(1,m,i)if(out[i]>b)pos[i]=++id,s[id]=i;
rep(1,m,j)go(j)if(pos[tn])b[j][pos[tn]]=e[i];
//res[x]表示此時有用的所有輕點對於重點的貢獻.
rep(1,q,t)
else//暴力.sqrt(m)
}} else
else
}} vis[x]^=1;put(ans);
} return 0;
}
NOI2016 7 13模擬賽總結
今天的模擬賽我又沒有墊底。dp口氣 wwt是一位非常良心的出題人。t1 看完就秒了,送分題,一眼cdq。看完題後看時限發現開了2s就不太虛了。而且比較清楚這種東西複雜度肯定是兩個log的,所以方法應該是對的。打完 拍所耗時間不多,在程式正確性保證後測一發極限發現要跑2.3s,把max都改手打就要2....
NOI2016 7 15模擬賽總結
我今天又沒有墊底 dp口氣 第一題感覺部分分之間差異好大,發現自己好像一檔都不太會,只對70分那一檔有想法。dp狀態很容易看出,關鍵在轉移,推了一下之後就會了。但由於只會70分這一檔導致不太懂如何驗證我程式正確,就隨手出幾個小資料 讀程式過了。順便說一句出題人好良心,送了我這種蒟蒻70分,增強了弱智...
2017 3 25NOI模擬賽總結
今天策略比較失敗,雖然成績和排名不是很難看,但暴露了很多問題。一開始正著看題,第一題是字串,第二題什麼鬼,第三題沒看懂。瞎想了一下第一題可以倒過來用sa 莫隊 資料結構求lcp。一開始很 覺得用個並查集可以把log消掉,就沒看了。第二題想了會想到個很靠譜的貪心,但這是n 2 log n的。發現隨手推...