NOIP模擬 精靈

2022-05-12 05:05:10 字數 2464 閱讀 8173

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

正解樹鏈剖分傳送門

#includeusing

namespace

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

email

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個珍珠上刻上字母,現在他想知道,如何刻字母可以...