【補題】聯賽模擬22
簡單計算
\[\sum_{i=0}^q \lfloor \frac {iq} p\rfloor \]\[\sum_{i=0} ^{\frac p 2}\lfloor \frac {qi} p\rfloor +\lfloor \frac {q(p-i)} p\rfloor \]然後發現這裡需要考慮奇偶性,很麻煩,那麼式子乘二
然後就成了
\[\frac{\sum_{i=0} ^p\lfloor \frac {qi} p\rfloor+\lfloor \frac {q(p-i)} p\rfloor }2 \]那麼提出來化簡就有
\[\frac{(p+1)q -\sum_{i=0}^p [p\nmid (qi)]}2 \]考慮後面的東西怎麼做
其本質就是用 \(i\) 補齊 \(p\) 有 \(q\) 沒有的因子
即 \(p/gcd(p,q)\)
而在 \(0\to p\) 中這樣的數有幾個呢?
\[\frac{p}{\frac{p}{gcd(p,q)}}=gcd(p,q) \]\[\sum_{i=0}^q \lfloor \frac {iq} p\rfloor=\frac{(p+1)q-p+gcd(p,q)}2 \]關於上邊的東西的奇偶性,直接分類討論一下就能證了
感覺
\[\sum_{i=0}^p [p\nmid (qi)]=gcd(p,q) \]的結論挺棒的
求和
套路差分一下,問題轉化成求\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m d_{i,j}\)
答案顯然為 \(\frac{nm(n+m)}2\)
(第一行的和是 \(\frac{m(m+1)}2\),後面每行增量 \(m\) 直接求和)
記得處理一下爆 \(long long\) 的事
(這倆題式子爽呀!)
分組配對
因為無論怎麼配對都不能超出那個 \(M\),由排序不等式,最大的和最大的配即可
然後不難想到二分,發現不能維護增加的人,就棄了
然後去頹了題解,發現這東西居然可以在外層套倍增,然後感覺有所收穫
具體而言就是如果
check(i,i+(1<<j)-1)\&\&!check(i,i+(1<<(j+1))-1)
那麼就有 \(target\in [2^j+1,2^{j+1}-1]\)
\(orz\)
學到了:外層倍增優化內層二分複雜度
城市遊戲
首先設 \(f_{i}\) 為 \(i\to n\) 的答案
\(ans=f_1,f_n=0\)
轉移就是
\[f_{i}=\min\max_{(i,j)\in E}(f_j+len_{i,j},g_{i\to n ,(i,j)}) \]\(g_{i\to n,(i,j)}\) 即刪掉 \((i,j)\) 後 \(i\) 到 \(n\) 的距離
求一下 \(g\) 進行轉移即可
這其實是另一道題目
Luogu 2934
首先維護上一個最短路樹,然後考慮每個非樹上的邊\((x,y)\)對答案的影響
對 \(x\) 到 \(y\) 的路徑上的點進行 \(ans_i=min(ans_i,d_x+d_y+w_{(x,y)}-d_i)\) 即可
這東西用樹剖會相當好寫
那咱寫個鬼的並查集
並查集的做法是按照 \(d_x+d_y+w_{(x,y)}\) 排序
用並查集維護是否更新,每條非樹邊更新路徑上的點值
不太難的題目吧,但是上來可能不會想到用dp……