三校联考 Day3
三校聯(lián)考 Day3
大水題
題目描述:給出一個(gè)圓及圓上的若干個(gè)點(diǎn),問兩個(gè)點(diǎn)間的最遠(yuǎn)距離。
solution
按極角排序,按順序枚舉,顯然距離最遠(yuǎn)的點(diǎn)是單調(diào)的,線性時(shí)間可解出答案。
大包子的束縛
題目描述:給出一個(gè)圓以及直角坐標(biāo)系上的若干個(gè)點(diǎn),選擇其中的一些點(diǎn),使得兩兩相連的線段所在的直線與圓無交,求最多可以選多少個(gè)點(diǎn)。
solution
這題的題解有點(diǎn)奇怪,總的來說就是……我還不知道怎么做……
毛毛蟲圖
題目描述:定義毛毛蟲圖為一個(gè)無向無環(huán)圖,且滿足圖中存在一條路徑,使得每個(gè)點(diǎn)到這條路徑的距離都小于等于\(1\).毛毛蟲圖不能有重邊,但可以有自環(huán)。現(xiàn)給定一個(gè)無向圖,并且定義合并操作:每次選定兩個(gè)點(diǎn)u, v,將u, v兩點(diǎn)以及所連的邊刪去,再加入一個(gè)新點(diǎn)w,將原來和u, v相連的邊改成跟w相連。問至少需要多少次合并操作才能使無向圖變成一個(gè)毛毛蟲圖。
solution
首先,這道題具有以下的幾點(diǎn)性質(zhì):
1、如果原圖有環(huán),那么需要花費(fèi)環(huán)內(nèi)點(diǎn)的個(gè)數(shù)-1次操作把環(huán)消除。
2、不連通的塊需要花費(fèi)1次操作使其和其它的相連
3、由于以上的兩點(diǎn)操作,剩下的點(diǎn)和邊組成一棵無向樹,設(shè)取得那條路徑上有\(len\)個(gè)點(diǎn),這棵樹上度數(shù)為\(1\)的點(diǎn)有\(s\)個(gè),那么這幅圖最終可以剩下\(len+s-2\)個(gè)點(diǎn),所以這條路徑應(yīng)該貪心地取樹的直徑。
有了以上的性質(zhì),就可以對(duì)圖先雙連通縮點(diǎn),然后求樹的直徑,統(tǒng)計(jì)度數(shù)為\(1\)的點(diǎn)的個(gè)數(shù),就可以算出答案。
自然的神星樹
題目描述:給出一棵樹與\(m\)種水果,給出若干個(gè)操作為將數(shù)上的一條路徑上的點(diǎn)的某一種水果的數(shù)量加\(1\),求操作完后,每個(gè)點(diǎn)那種水果最多。
solution
對(duì)于樹上的路徑,可以嘗試用樹鏈剖分來處理,把樹上的點(diǎn)重標(biāo)號(hào)。由樹鏈剖分修改的操作可以得出,可以將一條路徑分成\(logn\)個(gè)分別連續(xù)的區(qū)間,所以總共有\(nlogn\)個(gè)區(qū)間。按重標(biāo)號(hào)的標(biāo)號(hào)順序進(jìn)行掃描,建一棵表示當(dāng)前每種水果有多少個(gè)的線段樹,如果當(dāng)前掃描到的編號(hào)\(i\)為某個(gè)區(qū)間的開頭,就加入線段樹,如果\(i\)為某個(gè)區(qū)間的結(jié)尾,那么就線段樹中刪去。掃描完后映射回原標(biāo)號(hào)就可以得出答案。
轉(zhuǎn)載于:https://www.cnblogs.com/GerynOhenz/p/5396944.html
總結(jié)