BC

1002:

這題更多算是想法題,有腦洞的同學可以各種亂搞。將問題轉化成:求去掉KK位數字後,不含前導零,且數字和是否能被三整除。按照預測,這裏應該會匯聚本場最多的hack點。

我們設S0S0S1S1S2S2分別爲原串上mod 3=0mod3=01122數字的個數。 我們假定刪除取模後爲001122的數字各AABBCC個,則顯然有0<=A<=S0,0<=B<=S1,0<=C<=S20<=A<=S0,0<=B<=S1,0<=C<=S2K=A+B+CK=A+B+CSumSum mod 3=(A*0+B*1+C*2)mod 3=(S0*0+S1*1+S2*2)mod 3=biasmod3=(A0+B1+C2)mod3=(S00+S11+S22)mod3=bias。 枚舉CC的值,我們可得B mod 3=(bias-C*2)mod 3,A=K-B-CBmod3=(biasC2)mod3,A=KBC。如果有若干組A,BA,B不逾界,可知這些(A,B,C)(A,B,C)是在模意義下合法的解,但不一定滿足沒有前導零。

所以,對於【大於00的數】我們貪心地從後往前刪除,對於00我們貪心地從前往後刪除。

需要統計出:a3a3=第一個【mod 3=0mod3=0且非00的數】前00的個數(如果mod 3=0mod3=0且非00的數不存在,那麼a3a3就取所有零的個數),E1E1=【第一個00前是否存在mod 3=1mod3=1的數】,E2E2=【第一個00前是否存在mod 3=2mod3=2的數】。

則以下情況滿足任一種都能保證無前導零:A>=a3A>=a3B<B<S1S1E1E1C<C<S2S2E2E2

發佈了178 篇原創文章 · 獲贊 21 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章