解題報告**自其它部落格。
最好看這裡
a 這題非常簡單,全場所有隊都過了。
b 此題只需要列舉每個盒子還剩了幾個糖,算出其概率就可以了,不過需要推一會兒公式。
i = 0,1,...,n
c分兩部分處理。首先計算出周長為l的本質不同三角形個數,可以o(n)遞推;而後對於原問題可以直接列舉n的約數來處理。源**主幹如下:
for(int i=1; id設乙個閾值t,度<=t的點設為度小的點;其他點設為度大的點。對於每個度大的點記錄乙個其各顏色度小鄰居列表,以及記錄度大點互相之間的邊列表。for(int i=1; i
for(int i=1; i
對於度小的點的變色操作直接維護與他相鄰的所有邊的資訊;對於詢問操作,依次詢問每個度大的點的所有資訊就可以了。
在t取得比較合適的情況下,時間複雜度大約是每次操作o(n^(2/3))。此題唯一需要注意的地方是有重邊要合併。
e 據說標程是kmp,我不會做。
f: 基本想法是列舉造了多少個農民。顯然在造了至多x個農民之後我們就可以在造農民這段時間內攢出造乙個農民的錢了(也就是說現在只是缺cd不缺錢了),因此,首先模擬到造滿x個農民的情況,以後,造農民的過程成為了連續的過程。而且農民個數-需要的時間的這個函式是單峰的,因此可以三分造了多少個農民。此題需要注意的地方還有需要高精度。
g: 首先用o(n^2)時間構造一張表表示從a到b(inclusive)我總共贏了多少局,最後沒打完的一局是從哪兒開始的;然後列舉p和q,利用剛才那張表,把模擬一組(p,q)的過程複雜度降到o(1)。細節問題非常多。
h: 設l=max(m,t,t_i)。先將所有輸入整理為長l的形式。在作了一些矩陣的平方之後得到了最多o(qlogn)個矩陣。然後用初始的l個值依次左乘這些矩陣,結果時間複雜度為o(ql^2logn),比把那些矩陣直接乘起來小了乙個l.
i dp
j此題就是詢問a*b*c<=n的有序三元組(a,b,c)的數目。顯然a,b,c當中至少有乙個
k此題如果處理得不好可能會造成非常多的特殊情況需要特判。一種比較簡潔的處理方法是:首先建有向圖i->(i*10+j)%n,然後沿著這個圖反向從0'廣搜0算出每個點到0的最短距離,最後從0開始沿著這個圖正向廣搜,利用剛才的最短距離表直接遞推出答案的每一位。另一種處理方法是直接用string記錄答案,不過要注意常數。時間複雜度每組資料o(n)。
2020杭電多校第二場(解題報告)
題意 有個n個點m條邊的圖,每個點都有權值,每次可以選擇乙個點權全是正數的連通塊,讓他們的權值整體 1,問把所有點權值變成0需要多少次操作。1 n,m 1e5 樣例輸入 1 3 23 2 3 1 22 3 輸出 4hint 並查集。正難則反。反著操作,先按照權值從大到小排序,從最大點開始倒著新增邊,...
OI賽第二場Reason For Living
小b準備設計施工方案。設計圖是乙個n n個點m m 條邊的圖,小b每次施工可以取圖中乙個還沒有完工的生成森林把它完工。為了加快施工效率,每次取的時候小b都會最大化當前這個生成森林的邊數。請你幫他找出乙個符合要求的施工方案。如果有多個方案,輸出任意一種即可。第一行兩個整數n n,m m 後面m m行,...
暑期個人賽 第二場 A
時間限制 1000 ms 記憶體限制 65536 kb 丁神要去google上班了,去之前丁神想再做一道水題,但時間不多了,所以他希望題目做起來既水又快。現在一共有 n 道題,編號從1到 n 每道題有兩個值 a 和 b a 為做這道題需要的時間,b 為題目的 水值 丁神希望做b a 最大的那題。輸入...