Codeforces1348 題解

AC代碼鏈接git

A Phoenix and Balance

顯而易見,將前\(\frac{n}{2}-1\)個和最後1個分爲1組,剩下的1組即爲最優方案。github

B Phoenix and Science

這題直接構造。spa

\(a\)中不重複的值的個數爲\(cnt\)排序

若是\(cnt>k\)無解。ci

若是\(cnt < k\)那麼將其補到k;若是\(cnt=k\)則不操做;而後按小到大輸出全部不重複的值,重複\(n\)次。get

C Phoenix and Distribution

分類討論一下完事了。it

將輸入的串\(s_{0,1,..n-1}\)排序。io

特判\(k=1\)ast

  • 若是全是相同的字符,就平均分配。
  • 若是最小的字符的個數大於\(k\)
    • 若是\(s_k == s_{n-1}\),那麼將前\(k\)個字符分爲\(k\)組,剩下的平均分配。
    • 不然,將前\(k\)個字符按順序分爲\(k\)組,剩下的字符全給第\(1\)組,字典序最大的一定是第\(1\)組。
  • 不然,將前\(k\)個字符按順序分爲\(k\)組,剩下的字符全給第\(1\)組,字典序最大的一定是第\(k\)組。

D Phoenix and Science

這題逆向思惟作。class

題目幾乎是在明示只考慮天天的增量。

通過簡單的推導,能夠獲得兩個性質

  1. 在第\(i\)天能夠到達的範圍是\([i, 2^i-1]\)
  2. 天天的增量不減。

因此天數就是知足\(2^d-1 \ge n\)\(d\)的最小值。

從最後一天開始跑,只要跑到前一天可達的範圍且知足增量不減就好了。

總結

前4題都是比較簡單的,可是最近刷題太少了狀態下滑嚴重。仍是須要儘量地保持競技狀態吧。。。

D題很是有意思,我仍是受以前GCJ round1B A題dls的解法啓發纔想出來的。

相關文章
相關標籤/搜索