倍增的兩道應用題(題解報告)

2021-10-19 18:36:12 字數 2466 閱讀 6312

題目鏈結

題意:題意不難看懂,就是要求兩點間道路中最大權值的最小值

思路:這道題有很多種解法,這裡講利用lca的解法

首先我們知道,解肯定是建立在最大生成樹上的

先用kruscal建最大生成樹

然後再在lca中維護乙個d(u,v)表示從節點u走到節點v經過的道路的最小權重

然後就可以上**了

ac**:

#include

#include

#include

using

namespace std;

const

int n =

1e5+

10,m =

5e5+

10,inf =

0x3f3f3f3f

;int head[n]

,tot;

int n,m,q;

int fa[n]

;int fa[n][20

],d[n][20

],dep[n]

;int vis[n]

;struct edgee[m <<1]

;struct node

}a[n]

;void

add(

int u,

int v,

int w)

intgetf

(int x)

void

kruscal()

}}void

dfs(

int u)

for(

int i = head[u]

;~i;i = e[i]

.next)}}

intlca

(int x,

int y)

if(x == y)

return x;

for(

int i =

16;i >=

0;i --)}

return fa[x][0

];}int

solve

(int u,

int v)

}return ans;

}int

main()

kruscal()

;//最大生成樹

for(

int i =

1;i <= n;i ++

)//預處理出fa,d,depif(

!vis[i]

)dfs

(i);

cin >> q;

for(

int i =

0;i < q;i ++)}

return0;

}

題目鏈結

ps:這道題的優化真的很妙!!

題意:首先易證校驗值就是乙個有序陣列裡,最大與最小的差的平方加上次大與次小的差的平方加上…依次類推

然後這個問題就是乙個貪心問題了

思路:可以用倍增優化一下取值操作,再用歸併優化一下排序操作 因為要算校驗值陣列必須有序,那麼已經取到的數必然是有序的,新加進去的若干數隻需要先自身排序再與前面的數歸併一下即可

ac**:

#include

#include

#include

#include

using

namespace std;

const

int n =

5e5+10;

int t,n,m;

typedef

long

long ll;

ll k;

ll a[n]

,b[n]

,c[n]

;int ans,r;

void

merge

(int l,

int mid,

int r)

while

(i <= mid) c[t ++

]= b[i ++];

while

(j <= r) c[t ++

]= b[j ++];

}ll cal

(int l,

int r)

sort

(b + r +

1,b +

1+ r)

;merge

(l,r,r)

;for

(int i =

1;i <=

min(m,

(r - l +1)

>>1)

;i ++

)return res;

}int

work

(int l)

else p >>=1;

}return r;

}int

main()

printf

("%d\n"

,ans);}

return0;

}

兩道FFT的應用題

計算 c k k ia i b i k 正好看到 具體數學 上處理和式的tricks,雖然熱身題也不會做,但碾oi題還是很穩的 orz神犇高教授 對於 k ia i b i k 將b陣列倒置,即b i b n 1 i 原式變為 c k 0 i0 n k 1 ia i b n k 1 i 化簡得到c ...

兩道遞推公式題的解題報告

數學課講題的話到這裡為止吧 這兩題看似相似,其題解分別看來也都很有道理,為什麼其結果卻大相徑庭呢?因為去掉的含非法字串的情況不是f n 2 因為在求f n 時我們已經事先使前n 1項合法,所以在f n 1 我們用來乘以三作為總數的 中a n 1 為o的可能性比t2中a n 1 為w的可能性小。這是因...

益智題 (簡單的兩道題)

a公司拍攝的 黃河頌 獲最佳故事獎 b公司的 孫悟空 獲最佳武術獎 c公司的 白娘子 獲最佳戲劇獎。a公司的經理說 我們三經理的姓分別是三部片名的第乙個字,而又同自己所拍 首字不一樣。另一公司的孫經理笑著說 真是這樣 那三經理各姓什麼?答案 a白 b黃 c孫 另一公司的孫經理 說明a不姓孫,而a又不...