日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

杂题记录

發(fā)布時(shí)間:2023/12/15 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 杂题记录 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄題目[WC2006]水管局長題面:題解:[FJOI2015]火星商店問題題面題解[USACO13OPEN]陰和陽Yin and Yang題面題解[51nod]1472 取余最大值題意題解CF1137C Museums Tour題面題解

題目

以下題解里面要是有不對的地方歡迎提醒/打臉。

[WC2006]水管局長

題面:

[WC2006]水管局長

題解:

首先根據(jù)一些常識,我們可以發(fā)現(xiàn),符合要求的邊一定在最小生成樹上,因?yàn)橛袆h邊操作,因此我們需要做的就是動(dòng)態(tài)維護(hù)最小生成樹。
因?yàn)閯h邊不好處理,因此我們可以直接倒著處理,這樣刪邊就變成加邊了。
因?yàn)橐S護(hù)邊,因此我們考慮將每條邊都視作一個(gè)帶權(quán)中轉(zhuǎn)點(diǎn)。即對于x --- > y的邊,連x ---> now --- > y,其中now為一個(gè)帶權(quán)點(diǎn)。
同時(shí)如果已經(jīng)構(gòu)成一棵樹,我們要再往里面塞邊的話,就必須要?jiǎng)h掉一條邊,否則會構(gòu)成環(huán)。
因此對于一條連接x ---> y,邊權(quán)為(k)的邊,我們查詢x -- > y路徑上邊權(quán)的最大值(maxn),那么會有2種情況:

(maxn > k),那么說明插入這條邊是優(yōu)的,因此我們刪去最大值所代表的邊,加入當(dāng)前邊
(maxn le k),那么說明保留最大值比較優(yōu),所以我們忽略這條邊,不進(jìn)行修改。

然后就可以了。

[FJOI2015]火星商店問題

題面

[FJOI2015]火星商店問題

題解

觀察到,如果沒有最近d天的限制,那么我們只需要將所有物品按照所屬商店的順序加入可持久化trie樹。
如果我們要查詢商店編號在([ll, rr])之間的最大xor值,那么我們只需要查詢區(qū)間([l, r])內(nèi)的xor最大值即可。
其中(l)表示第一個(gè)屬于查詢范圍內(nèi)的物品編號,(r)表示最后一個(gè)屬于查詢范圍內(nèi)的物品編號。
具體如何獲取這2個(gè)編號?因?yàn)槲锲肥前凑账鶎偕痰觏樞蚣尤氲模晕覀冎恍枰诩尤氲奈锲沸蛄兄卸忠幌戮涂梢粤恕?br /> 那么再考慮最近d天的限制。
相當(dāng)于是查詢商店編號屬于([ll, rr]),時(shí)刻屬于([l, r]) 內(nèi)的最大xor值。
我們考慮線段樹分治。
對于每個(gè)詢問區(qū)間,我們將它的查詢時(shí)刻區(qū)間分成log段,掛在線段樹上。
對于每個(gè)物品,因?yàn)槲覀冃枰獙⑽锲钒凑账鶎偕痰甑捻樞蚣尤耄虼藢τ诰€段樹上的每個(gè)區(qū)間,我們都需要重建整個(gè)可持久化trie樹。
不過因?yàn)槲锲肥且粋€(gè)單點(diǎn)修改,因此就算我們在每個(gè)包括了這個(gè)物品的區(qū)間都放一個(gè)這個(gè)物品,每個(gè)物品也最多放log個(gè)。
因此我們在每個(gè)包括了這個(gè)物品的區(qū)間內(nèi)放一個(gè)這個(gè)物品,然后每到一個(gè)區(qū)間,就取出所有在這個(gè)區(qū)間內(nèi)出現(xiàn)過的物品,重建整棵trie樹。
然后對于每個(gè)掛在這個(gè)區(qū)間上的詢問,二分我們需要查詢的物品區(qū)間,在可持久化trie樹上查詢并更新這個(gè)詢問的答案。
最后再輸出即可。
復(fù)雜度是(O(nlog^2n))的

[USACO13OPEN]陰和陽Yin and Yang

題面

[USACO13OPEN]陰和陽Yin and Yang

題解

看上去點(diǎn)分搞搞就可以了?

[51nod]1472 取余最大值

題意

有一個(gè)長度為n的數(shù)組a,現(xiàn)在要找一個(gè)長度至少為2的子段,求出這一子段的和,然后減去最大值,然后對k取余結(jié)果為0。
問這樣的子段有多少個(gè)。

題解

之前做過這題的樹上版本,可以直接套上來做。
我們考慮點(diǎn)分治,因?yàn)槠唇?條路徑時(shí)需要知道最大值是誰,所以不能直接做完個(gè)子樹就放桶。
我們考慮容斥,先求出所有的路徑,按照max從小到大排序,然后每枚舉到一條線段,就減去max然后在桶里面找方案,再加入桶。
但是這樣會有重復(fù),因此我們單獨(dú)求出每棵子樹內(nèi)部互相匹配的方案。然后用總方案減去這部分,就得到了答案。

CF1137C Museums Tour

題面

一個(gè)國家有 (n) 個(gè)城市,通過 (m) 條單向道路相連。有趣的是,在這個(gè)國家,每周有 (d) 天,并且每個(gè)城市恰好有一個(gè)博物館。
已知每個(gè)博物館一周的營業(yè)情況(開門或關(guān)門)和 (m) 條單向道路,由于道路的設(shè)計(jì),每條道路都需要恰好一個(gè)晚上的時(shí)間通過。你需要設(shè)計(jì)一條旅游路線,使得從首都:(1) 號城市開始,并且當(dāng)天是本周的第一天。每天白天,如果當(dāng)前城市的博物館開著門,旅行者可以進(jìn)入博物館參觀展覽,否則什么也做不了,這一天的晚上,旅行者要么結(jié)束行程,要么通過一條道路前往下一個(gè)城市。當(dāng)然,旅行者可以多次經(jīng)過一個(gè)城市。
要求讓旅行者能夠參觀的不同博物館數(shù)量盡量多(同一個(gè)城市的博物館參觀多次僅算一次),請你求出這個(gè)最大值。

題解

如果我們對原圖縮點(diǎn)會怎樣?
每個(gè)強(qiáng)聯(lián)通分量的貢獻(xiàn)會隨著進(jìn)入的時(shí)間而改變。
考慮到(d)不大,可以考慮將每個(gè)城市拆成(d)個(gè)單獨(dú)的點(diǎn),((x, i))表示點(diǎn)(x)在星期i的狀態(tài),再用((x, i)) ---> ((x, i + 1)),然后再縮點(diǎn)。
那么我們會發(fā)現(xiàn),一旦我們可以到達(dá)一個(gè)點(diǎn),并且((x, i))是開啟狀態(tài),那么我們一定可以獲得這個(gè)貢獻(xiàn),因?yàn)槲覀冏?k)到達(dá)的,一定是某個(gè)城市的第(k)個(gè)狀態(tài)。因此我們就可以在新圖上直接跑最長路了。

總結(jié)

以上是生活随笔為你收集整理的杂题记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。