wonderland的地圖可以抽象成乙個n個點的有根樹,第i個點上生活著編號為i的精靈,根節點為1號節點。
乙個點的深度定義為這個節點到根的距離+1,第i只精靈和第j只精靈的親密度為他們在樹上最近公共祖先的深度。
現在jessica想詢問你q次,每次詢問第z只精靈和第l~r只精靈的親密度的和是多少。答案對201314(不是乙個質數)取模。
第一行有2個整數,分別代表n,q。
接下來n-1行,分別表示點2到點n的父親節點編號。
接下來q行,每行3個整數,分別代表一組詢問的l r z。
輸出共q行,每行乙個整數表示詢問的答案,答案對201314(不是乙個質數)取模。
對於所有資料:n,q≤10^5, 1≤l≤r≤n, 1≤z≤n。
subtask1(5分):q,n≤5
subtask2(10分):q≤100,n≤500
subtask3(15分):q≤1000,n≤1000
subtask4(15分):樹的形態為一條鏈,x(x≥2)節點的父親為x-1。
subtask5(30分):z為定值
subtask6(25分):無特殊限
我只會暴力!!正解只會思路,但是目前還沒調出來qvq,最後會附上傳送門。
這個題難度被簡化了,因為資料弱了,但是很符合noip的感覺,就是特殊資料不少,用來練練暴力是不錯的
我覺得我的暴力不算優秀,敲了100分鐘,近200行,期望得分75,實際得分60,掛了longlong!!【仰頭長嘆
首先 有30分的 n2:我是直接跑的lca,就對於[l,r]區間內每個點,直接與z求lca
15分的 一條鏈 :而且這條鏈連順序都是定的,就直接算。比如z深度較淺,z就永遠是lca,就(r-l+1)*dep[z],類似的,共三種情況,討論就行了。
還有30分的z是定值:可以差分,但是我懶得想那麼多了,就擺了顆線段樹,寫著也挺快的,就查詢和建樹倆操作
其實正解看這題5min就想出來了,奈何樹剖敲不熟。不過這個題資料真的好溫柔qvq
最後分享這個特殊資料 大家練練暴力啊qvq(一共20組 兩部分):part1
part2
正解樹鏈剖分傳送門
#includeusingnamespace
std;
#define mod 201314
#define lc (p<<1)
#define rc (p<<1|1)
#define mid (t[p].l+t[p].r>>1)
#define n 100100
#define ll long longll n,m,u,cnt,seg=1,line=1
,orgz;
ll lm[n],rm[n],zm[n],
out[n],son[n],dep[n],first[n];
ll fa[n][
20];
ll ans,tmp,a[n];
inline
void read(ll &x)
while(ch>='
0'&&ch<='9')
}struct
e[n*4
];struct
tree
t[n*4
];inline
void
add(ll u,ll v)
void
dfs(ll u,ll f)
}inline ll lca(ll x,ll y)
inline
void
pushup(ll p)
inline
void
build(ll p,ll l,ll r)
ll bm=l+r>>1
; build(lc,l,bm);build(rc,bm+1
,r);
pushup(p);
}inline ll query(ll p,ll ql,ll qr)
if(qr>mid)
return
ret;
}void
work_seg()
}void
work_line()
if(dep[l]>=dep[z]&&dep[r]>=dep[z])
if(dep[l]dep[z])
printf(
"%lld\n
",ans);
}}void
work()
}int
main()
for(ll i=1;i<=m;i++)
for(ll i=1;i)
}
if(out[n]!=0)line=0
;
if(line)
dfs(
1,0);
for(ll i=1;i<=n;i++)dep[i]++;
if(seg)
if(n<=2000)
}
模擬精靈 z
反覆做歷史測試,重大改進了賣出的判斷模式。此項改進能使系統收益每年增加5 左右 重新整合了幾種買法,使之在熊市更加謹慎 對 的反轉反應更為靈敏 適當加大了 單獨處理有重大機會的 加入多種 買賣的技巧 重大改進賣出跌停板的 的方法 漲停板買法,對漲停強勢開啟並又封住的 根據情況加倉 對買賣操作做後續跟...
NOIP模擬 修路
這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...
NOIP模擬 項鍊
經過一番周折,bob找到了alice,為了安慰alice驚魂未定的心,bob決定給alice買一條手鍊,這條手鍊由m個珍珠組成,每個珍珠上刻著不同的小寫字母。當alice看到一些字母按照一定的順序排列成的字串時,就會產生一定的愉悅值。bob現在可以在這m個珍珠上刻上字母,現在他想知道,如何刻字母可以...