JZOJ3360 NOI2013模擬 蘋果樹

2021-09-25 05:16:26 字數 1327 閱讀 3367

傳送門

神犇家門口種了一棵蘋果樹。蘋果樹作為一棵樹,當然是呈樹狀結構,每根樹枝連線兩個蘋果,每個蘋果都可以沿著一條由樹枝構成的路徑連到樹根,而且這樣的路徑只存在一條。由於這棵蘋果樹是神犇種的,所以蘋果都發生了變異,變成了各種各樣的顏色。我們用乙個1到n之間的正整數來表示一種顏色。樹上一共有n個蘋果。每個蘋果都被編了號碼,號碼為乙個1到n之間的正整數。我們用0代表樹根。只會有乙個蘋果直接連到樹根。

有許許多多的人來神犇家裡膜拜神犇。可神犇可不是隨便就能膜拜的。前來膜拜神犇的人需要正確回答乙個問題,才能進屋膜拜神犇。這個問題就是,從樹上編號為n的蘋果出發,由樹枝走到編號為n的蘋果,路徑上經過的蘋果一共有多少種不同的顏色(包括蘋果u和蘋果v的顏色)?不過神犇注意到,有些來膜拜的人患有色盲症。具體地說,乙個人可能會認為顏色a就是顏色b,那麼他們在數蘋果的顏色時,如果既出現了顏色a的蘋果,又出現了顏色b的蘋果,這個人只會算入顏色b,而不會把顏色a算進來。

神犇是乙個好人,他不會強人所難,也就會接受由於色盲症導致的答案錯誤(當然答案在色盲環境下也必須是正確的)。不過這樣神犇也就要更改他原先數顏色的程式了。雖然這對於神犇來說是小菜一碟,但是他想考驗一下你。你能替神犇完成這項任務嗎?

n<=50000,m<=100000

#include#include#include#include#define maxn 100005

#define maxp 20

#define maxm 100005

using namespace std;

int n,m,i,j,k,x,y,rt,c[maxn];

int em,e[maxm],ls[maxn],nx[maxm];

int dep[maxn],fa[maxn][maxp];

int fir[maxn],las[maxn],tot,d[maxn],tp[maxn];

int k,t[maxn],ans,qans[maxm];

struct que q[maxm];

int cmp(que a,que b)

void read(int &x)

void insert(int x,int y)

void dfs(int x,int p)

void change(int i)

int main()

sort(q+1,q+1+m,cmp);

for(i=1;i<=n;i++) tp[i]=1;

i=1,j=0;

for(k=1;k<=m;k++)

} for(i=1;i<=m;i++) printf("%d\n",qans[i]);

}

JZOJ3362 NOI2013模擬 數數

求區間 a,b a,b a,b 有多少個數是 完美的 乙個數是 完美的 當且僅當這個數的各位能分成兩個集合,使得兩個集合中數字的和相等。b 1 09 b leq 10 9 b 10 9其實思考這題的時候已經沒有什麼時間了。但我還是努力地去想正解。看到的第一眼就會想到數字dp,然後腦中就彈出了乙個dp...

NOI2013 矩陣遊戲

據學長的話來說 這是當年noi最簡單的一道題 於是抱著試一試的心態做了一做 蒟蒻qaq 由於矩陣乘法不會,只能數學必修的種數列知識推公式 先橫向推 f x k a f x 1 k 展開就可以得到乙個等比數列 然後根據等比數列的性質可得 fx ax 1 f1 b ax 1 1 a 1 至此我們完成了將...

NOI2013矩陣遊戲

題目鏈結luogu1397矩陣遊戲 題目大意 已知 f1 1 1 fi,j a f i,j 1 bf i,1 c fi 1,m d j 1 i 1 求f n,m 我們可以構造矩陣 1 fn,1 1 0ba m 1 1fn m 1 c fn 1,m d 10b a m 1 1 fn,m 令t 10ba...