luogu
定義0:\(c_i,d_i\)與題意中相同;令\(d\)為題意中的\(k\),即維數。
定義1:令\((i,j)\)為第\(i\)輪第\(j\)步。
定義2:對於\((i,j)\),如果存在位置此時走出界限,則稱其為最值。令最值集合為\(s\)。
定義3:令向量\(\vec\)為一輪後各維的增量
定義4:容易發現,\(\forall (i,j)\in s\),\(\exists \\)
出界位置為:\(\\)(易得\(l_=r_\))。
令向量\(\vec}=\\)。
結論1:對於\(i\ge 3\),若\(\forall (i,j)\in s\),則\((i-1,j)\in s\),且滿足:
\[\vec}_k=\vec}_k+\vec_k(k\neq c_j),\vec_=1
\](1)
對於\(i=1\),\((i,j)\in s\),其貢獻為\(j(\prod\limits_^len_k)\)
(2)
對於\(i=2\),\((i,j)\in s\),令\(len_k=\vec}_k\),其貢獻為\((n+j)(\prod\limits_^ len_k)\)
根據結論1,若\((i+\lambda,j)\in s\),其貢獻為\((\lambda\cdot n+j)(\prod\limits_^d (len_k-\lambda\cdot n))\)
根據結論1,\(\exists limit,s.t.~(i+\lambda,j)\in s(\lambda\in[0,limit])\)
總貢獻為
\[\sum\limits_^(\lambda \cdot n+j)(\prod\limits_^d (len_k-\lambda\cdot n))
\]我們將\((\lambda \cdot n+j)(\prod\limits_^d (len_k-\lambda\cdot n))\)寫成關於\(\lambda\)的\(d\)次多項式\(f(\lambda)=\sum\limits_^d f_k\lambda^k\)。
那麼總貢獻為
\(\begin
\sum\limits_^f(\lambda)&=\sum\limits_^\sum\limits_^d f_k\lambda^k\\
&=\sum\limits_^d f_k\sum\limits_^\lambda^k\\
\end\)
具體講一下**流程:
\(o(nd)\)算\((i=1,j)\in s\)的貢獻
\(o(d^2)\)預處理,\(k\in[0,d]\)的自然數冪和多項式係數
\(o(nd^2)\)算\((i=2,j)\in s\)的\(f(\lambda)\),\(o(nd^2)\)求\(\sum\limits_^f(\lambda)\)
總複雜度\(o(nd^2)\)
題解 微信步數
題目鏈結 如果將每一維度都合在一起考慮,複雜度貌似無論如何都需要帶上乙個 prod kw i 類似 csp2020t3 的思路,如果把每一維都分開考慮可能可以降低一點複雜度。對於維度 i 的某乙個位置 p 1 le p le w i 我們可以求出乙個值 mbox i p 表示在僅考慮維度 i 時小 ...
NOIP2020 賽前總結
沒有一眼秒的題都必須對拍,這裡對拍包括瘋狂造小資料人工檢查。所以不會的話放心打暴力吧,反正寫出來了也要對拍。碼農題最後碼。預估可能會失誤,不要認為寫一半就丟了很可惜,其他更可做的題沒碰更可惜。想起了就把資料夾複製一遍備份。做大修改前也要備份,多用注釋少用刪除。對拍的資料生成器記得srand。解法極度...
NOIP2020考試總結
比模擬賽還離譜的noip 今年正確密碼 1kao2sheng0jia5you 老師報密碼的方式 1205考生加油。老師 密碼是1205考生加油啊!反正是noip就不搞格式算了 反正入場一眼搞掉 t1 粗略算了一下不會爆 long long 就幹上去了 然後發現少乘一次裂開了 然後大概8 35的樣子就...