ZJOI2018游記Round1



廣告

ZJOI2018Round2游記


All Falls Down

非常感謝學弟學妹們捧場游記雖然這是一篇假游記

ZJOI Round1今天正式落下帷幕。在這過去的三天里遇到了很多朋友,見識了很多有趣的人和事。或許這只是我整個OI生涯中的卷首一場,但是允許我謹此游記獻給所有的一切、所有的你們。


ZJOIday1游記

8:30:然而報告廳里選手們陸陸續續地並沒有到齊……

第一場主講人是紹一的任軒笛,講課pdf的標題一如既往地是「雜題選講」聽主講人說都是一些套路題

Binary Cards

不上升序列

Sum of Powers

Perpetual Subtraction

題意

一開始有一個數x,每次把x變成[0, x]內隨機一個整數。
給出一開始數字為0 ∼ n的概率以及輪數m,求m輪后剩下數字
是i的概率。
對998244353取模。

范圍

n ≤ 10^5
, m ≤ 10^18。

看上去似乎可做的概率題(但是我不會小數取模)

小L的計算題

(又是數學題)

星空

Chef attic window

(數學題)

Query on a tree VII

題意

給出一棵n個點的無根樹,每個點有點權。
點的顏色有黑白兩種,初始所有點都為黑色。
需要支持:單點反色,單點修改點權,詢問一個點所在的同色連
通塊中的最大點權。
范圍
n, m ≤ 10^5。

據說是一道數據結構題

Jabby's shadows

題意

一棵樹,樹有邊權,每個點有黑白兩種顏色,要求支持:
1 u:詢問點u所在同色連通塊中,最遠兩點的距離,即直徑。
2 u, v, c:將u ∼ v鏈上顏色都修改為c。

范圍

n, q ≤ 100000。

上一題的加強版。
但是聽課之后仍然不懂如何修改一條鏈的顏色……

Making Change

題意

有n種硬幣,第i種面值是Di,每種都有無限個。求拼出C的方案
數。兩種方案不同僅當某種硬幣使用的數量不一樣。

范圍

n ≤ 50, Di ≤ 500, C ≤ 10^100

第一眼看上去好眼熟,以為終於來了一道可做題……好吧數據范圍有些可怕

正解依然是數學方法。我能說基本聽不懂嗎……

不過發現了一個很有趣的東西:洛必達法則。找了一個例子推了推——好生神奇!以前也有遇到過求∞/∞這樣式子的極限,不過都是瞎推來推去然而並沒有推出來。


13:03:三樓機房的初中生都去打游戲了;遲到三分鍾進場

下午第一場講課人是陳嘉樂。好像又是雜題選講的樣子

Test 1

Test 2

一個網格圖n,m<1e5被染為黑白兩色。對於所有的黑點(x,y),(y,z),將(x,z)染為黑色。詢問最后一共有幾個黑點。

是的看上去非常可做。然而我只會用vector暴力枚舉。

標算講了弱連通塊及染色如此的圖論方法。但是,???

Test 3

一顆有根樹有黑白兩色;初始位置在root上,每次隨機等概率走向一個兒子,當位於葉子節點時停止。對於每次走到的節點,如果當前是白點則僅在第一次走上該點時cnt++否則每次cnt++。詢問最終cnt的期望值。

據說是一道概率的入門題。看上去dp可以?不過標算我沒有仔細聽,似乎要解方程?

Test 4

給定一個字符串S,字符集大小小於等於8。當且僅當Si=Sj或|i-j|=1時存在i->j的有向邊。詢問最后圖的直徑 和 距離為直徑的所有點對。

Test 5

給定一個n≤15個點,m≤n(n-1)/2條邊的無重邊的有向圖G,保證任意一條邊(xi,yi)中xi<yi。考慮G中的所有子集K,並在G中刪去這些邊,形成新的圖G'。

小H,小R在G'上玩游戲,小H先手,兩人輪流操作一次。起初在點1,點2有兩顆石子。每次操作可以將一個石子移動到一個與它相連的點上,最后無法移動者失敗。

我的想法:枚2^m的圖,每次計算1,2的SG值。 顯然是會TLE的

標算:狀壓DP:dp出有哪些圖1、2點的SG不同。將圖分層操作,狀壓儲存。並沒有搞清楚實現細節

Test 6

對於一個初始值為0的序列{an},共染k次顏色,每次可以在[l,r]上覆蓋上第i種顏色。詢問最終可能序列的方案數。

法一:基礎的dp
法二:數學方法求解輔助多項式F(x)

Test 7

定義一個森林的價值為森林中每棵樹的點數的平方和。現在給定一顆n≤1e5的樹,求隨機刪去i=1...n條邊后的森林的價值的期望。

「簡單」的計數/數據結構題。

然而我依然不會


15:07:下午第二場開講,吳瑾昭的網格圖算法選講

聽主講人說這是今年冬令營的某營員交流課件

完全連通

bzoj1001

求網格圖最大流/最小割

ZJOI2016旅行者

正權網格圖多次詢問最短路

網格圖的SSSP

首先這個網格圖是有可能有負邊但是一定沒有負環的,那么因為:

  • dijkstra無法跑負權圖
  • SPFA在網格圖上跑多半是會爆炸的

所以要考慮新的SSSP

這個網格圖的SSSP是個分治操作。

令sp(G, s)為求圖G中點s到其他各點的距離

  1. 若G的節點數小於等於2,則返回
  2. 沿着G的長邊的中線把G分為G0,G1
  3. 取中線上一點r
  4. Di = sp(Gi, r)
  5. 算出Gi中任意兩個中線上的點的距離δi[u][v]
  6. 對每個中線上的點v算出B[v] = dist(r, v)
  7. 對每個點v算出d'[v] = dist(r, v)
  8. 對每個點v算出d[v] = dist(s, v)
  9. d即為所求

然后還講了step6,7,8的具體實現細節。但是台下有人在聽嗎???

Decremental 2-Edge-Connectivity

網格圖之橋


今天講課用到好多高級的數據結構、玄學的數學方法和那個神奇的FFT……
嗯……還有非常非常多東西要學。有些懷疑一年之后能否達到這樣的水平……


ZJOI day2 游記

8:31:紹一季雨田開始講課

然而課件名稱叫做“CF水題選講”

CF578E Walking!

CF788D Recover a functional graph

題目大意

交互題:平面上有一些平行於x軸和平行於y軸的直線。每次詢問可以詢問平面上的一個點,交互庫會給出與這個點距離最近的直線的距離。你需要確定所有的直線。

數據范圍

平行於x軸或y軸的直線條數個不超過1e4,坐標范圍絕對值不超過1e8.詢問次數不能超過3e5

看上去可做的交互題……但是如果有很多平行於y軸的直線豈不是很難判斷

標算

詢問形如(x,x)的點,當得到的答案為0時,則詢問點(x,t)和(t,x)和(t,x)確定答案是否為0,其中保證(t,t)答案不為0。

因此倍增做下去就可以了。

然而這題是會被卡常數的。分析一下發現在初始幾步浪費比較大,所以可以在(x0, x0)的答案為0時判斷(x0+1e3,x0+1e3)的答案是否為1e+3,是則直接跳到(x0+1e3,x0+1e3).

CF713E Sonya Partymaker

題目大意

有n個人,m個凳子,其中凳子是環形排布的。

CF744D Hongcow Draws a Circle

題目大意

平面上有n個紅點,m個藍點。需要畫一個最大的圓,滿足圓內至少有一個紅點,且沒有藍點。邊界上的點可以視為在圓內,也可以不在。輸出最大的圓的半徑。無限大則輸出-1。

mine

我的想法是給藍點求個凸包先?

標算

  1. 如果有紅點不在藍點形成的凸包內,顯然輸出-1
  2. 如果答案有限,

CF618G Combining Slimes

題目大意

有一個1xm的面板,兩個值為x的數字塊碰到一起會形成一個x+1的數字塊。一開始面板上沒有數字塊。接下去會一直執行以下操作,直到無法操作:在面板最右端會生成一個數字塊,有p的概率這個數字塊的值是1,有1-p的概率這個數字塊的值為2.詢問最終面板上數字和的期望值。

數據范圍

1 ≤ n ≤ 10^9, 1 ≤ p < 10^9

標算

……dp做法

技巧

輸出實數題一般兩種套路

  • 二分
  • 爆精度

CF794G Replace All

CF744E Hongcow Masters the Cyclic Shift

標算

建模為圖論

CF704E Iron Man

題目大意

有一顆n個節點的樹,有m個人,每個人有四個參數(t,c,v,u)表示這個人t時刻在點v出現,並以每秒c條邊的速度向點u移動,在到達u點后消失。詢問最早的相遇時刻。若u=v則表示這個人僅在t時刻出現。

數據范圍

n,m≤1e5,t,c≤1e4

標算

首先考慮退化成鏈的做法。那么每個人都可以表示成為在t-x坐標系上的一條線段。

那么再用樹剖dfs序代替x軸,再用set玄學維護就可以了(?)

CF645G Armistice Area Apportionment

題目大意

給定兩點P(a,0),Q(-a,0),現在在平面上有n個點,

標算

以n個點為圓心作n個過P的圓。求所有圓交點中與點Q最近的交點,輸出該交點到點Q的距離。接下去二分答案,轉化為求圓上弧是否相交的問題。

(然而最后一步仍然不會)

CF750H New Year and Snowy Grid

題目大意

有一張有障礙的(永久障礙)\(h×w\)的網格圖,問是否存在一條路徑,從左上角出發到右下角再回到左上角,其間不重復經過同一個點(除起點外)。有\(q\)組詢問,每組詢問給出\(k\)個非障礙點,問是否存在不經過這\(k\)個點的合法路徑。

數據范圍

h,w≤1e3,q≤1e4,k≤10

標算

首先如果只有一組詢問,那么這就是一個經典的網絡流。我們可以將每個點拆點,如果這個點是障礙點,那么i向i'連流量為0的邊,否則i向i'連流量為1的邊,表示每個點只能經過一次。然后每個點向周圍的四個點連流量為1的邊,然后從S到T跑最大流。如果流量小於2,那么答案就是NO,否則答案就是YES.

然后試圖最大流轉最小割。不過因為建的不是平面圖,沒有方法直接最短路。

……接下去圖論算法,試圖構造 最短路模型。

……接下去轉為連通性問題。

CF772E Verifying Kingdom

題目大意

交互題:交互庫有一顆二叉樹,其中有n個葉子節點,所有節點除葉子節點外都有兩個兒子。每次可以詢問(a,b,c)三個不同的葉子節點,交互庫會回答lca(a,b),lca(b,c),lca(a,c)中深度最深的一個。輸出與交互庫同構的任意一棵樹。

數據范圍

n≤1e3,詢問不能超過10n

標算

考慮挨個將點加入樹中,問題轉換為如何快速判斷一個點在樹中的位置。

然后點分治。


中午休場時分:播放《帕丁頓的熊》

下午12:59:下午第一場主講人鎮海梁晏成

課件名稱:JOIsc(Japanese OI Spring Camp)好題選講

Port Facility

Sparklers

題目描述

M個人分別在Ai的位置上站立,同時每個人都有煙花且他們每秒可以跑s米。初始只有第k個人的煙花正在燃燒,並且煙花只能夠燃燒T秒;現在要將煙花傳遞下去。煙花能夠從A傳遞到B當且僅當:

  • A和B的位置相同
  • A的煙花恰好燃燒到T秒
  • B的煙花尚未燃燒

mine

那么二分答案是顯然的,問題是如何check()。

Cultivationhh

題目描述

有一個W×H的格子,其中有n個格子長草。接下去可以選擇上下左右四種操作。“上”操作代表所有長有草的上邊一個格子長上草。

標算

先考慮一維的情況,那么只有左右的操作。

例如X---X-需要3次,而---X---X-需要4次。

設左操作有L次,右操作有R次;左邊起有A個空,右邊起有B個空,兩塊草之間有最大C個空。那么必須滿足:

  • L≥A
  • R≥B
  • L+R≥C

然后在二維中考慮上下操作的次數。繼而dp處理,最終得到答案。

Broken Device

題目描述

通信題:你需要傳遞一個數X。

你可以發送一份長度為150位的01串。由於發送裝置是損壞的,在這150位中,有指定的K位是損壞的,這些位置上只能發送0.你加密時知道這些信息。

同時需要根據你發送的01串還原出X。注意,你解碼時只知道發送裝置是損壞的,而不知道K的值,也不知道哪些位置只能發送0

數據范圍

X≤1e18,K≤40.

mine

標算

random_shuffle? / 某種神奇的壓縮方式?三位分一個段。

Railway Trip

Arranging Tickets

題目描述

有N個車站順時針圍成一圈,編號為1...N。有N種車票,其中第i種車票可以從第i個車站前往第i+1個車站;也可以從第i+1個車站前往第i種車站。

只能以套票的形式購買車票,一組套票包含每一種車票恰好一張。

現在有M類人,第i類人共有Ci個,他們都要從Ai前往Bi個車站,詢問要滿足所有人至少需要多少組套票。

標算

(有些抽象……加上我想睡覺了……自從沒有聽懂講課的“翻轉”操作之后就再也沒聽懂了……)

Long Mansion

標算

似乎是DP?

Natural Park

題目描述

交互題:有一個N個點,M條邊的無向圖,每個點的度數≤7.每次你可以詢問(x, y, p[]),交互庫會返回只經過p[]中的點能否從x走到y

最多詢問45000次,求這張圖

數據范圍

N,M≤1500

標算

先考慮樹退化為鏈的過程;然后再……

Long Distance Coach

題目大意

有一輛客車從0前往W,車速為每秒一個單位長度。途中有N個補給站位於S1,...,Sn。在起點或補給站可以給客車的飲水機加水,其中飲水機容量不限且每一單位的水價格均為W。

起初車上有M個乘客,第i個乘客會在時刻Di+T×k喝一單位的水;如果此時飲水機沒有水了,這位乘客就會下車並且索要Ci的賠償費。不會有人在補給站的時候需要喝水。

司機會在所有T×k的時候喝一單位的水,此時飲水機內必須要有水

詢問如何分配在起點和補給站加水的量,使得總花費最小。

mine

顯然的,既然飲水機容量不限且水的單價相同,那么可分為兩種情況:

  1. 讓所有人都有水喝:在起點就買下所需的水。
  2. 把那些要求賠償費的乘客趕下去:起點所買的水小於所需的

但是如何繼續貪心呢?……

標算

同上分為兩類,然后dp做法。

轉移方程顯而易見之后考慮復雜度。然后據大佬所說,可以斜率優化+單調棧優化dp;或者cdp分治維護一下;或者一種用gcd的方法優化(?)

Abduction 2

題目描述

有𝑊+𝐻個街道,其中𝑊條平行𝑦軸,𝐻條平行𝑥軸,它們相交形成𝑊×𝐻個十字路口。每條街道有一個重要度,重要度兩兩不相同。給定一個起點,開始時你可以選擇任意一個方向並順着街道走下去,如果在十字路口拐彎可以走到重要度更大的街道就拐彎,方向隨意。如果走到盡頭那么就停止行走。𝑄次詢問一個起點,求走到盡頭的最長路的長度

數據范圍

W,H≤500000,Q≤100

標算

先考慮一次詢問直接搜索,然后仔細分析一下可以加上一些剪枝條件。

后來梁晏成成功證明了記憶化之后復雜度不僅小於O(NQ)並且還只是O(N√Q)的(因為記憶化之后常數比較大)

Dragon 2

有𝑁條龍,第i條龍坐標為(𝐴_𝑖,𝐵_𝑖),屬於第𝐶_𝑖個部落。有兩個人類的村庄(𝐷1,𝐸1 ),(𝐷2,𝐸2)。接下來有𝑄次詢問,每次詢問給出𝐹,𝐺,表示所有屬於𝐹的龍向屬於𝐺的龍作射線,問與線段(𝐷1,𝐸1 )−(𝐷2,𝐸2)的交點個數。不存在三點共線

標算

理解為向量的二維偏序判斷問題。然后再分塊技巧,離線預處理玄學可過(據說每次暴力也直接可過)

City

題目描述

通信題


The End

省選一試結束啦(不過我反正就是去打醬油的節奏)

話說題目的部分分給的還是很良心的。然而我並沒有拿到

A題暴力處理線樹,看上去開O2跑得還挺快。

B題看上去就是數據結構大題,果斷放棄連暴力都沒寫。

C題猜結論,每次操作應該是O(1)或者O(log n)的?瞎猜瞎猜搗鼓出了跟gcd有關的東西。但是貌似我的結論在M≤1e3的時候跑的基本正確然而M≥1e5時候就要靠rp了???

順帶捎上題面題解

誒誒誒,好像在兩個學校同時報省選那么會有兩張准考證
所以這就是我最終考試編號和狗牌編號不一樣的理由嗎……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM