題解:首先考慮如何求出乙個集合的優美值:
可以先將集合的元素從小到大排序,順序掃瞄一遍。假設現在的優美值為t,即掃到當前位置最多可以湊出[1,t],那麼對於下乙個數x:
如果 x<=t+1,那麼這個數加入後可以湊出[1,t+x],答案t=t+x;
否則能夠湊出的部分還是[1,t],答案不變,且不會再變了,退出掃瞄;
但現在的情況是,要從另乙個集合中拿k個數加入當前集合,再求出當前集合的優美值。可以先求出另乙個集合的數加入前的當前集合的優美值t,然後順序對另乙個集合順序掃一遍(所有集合讀入後都要先排好序)、建乙個棧,將從另一集合中找到的滿足x<=t+1的x放入棧中直到不滿足,那麼棧頂元素就是最適合放進第乙個集合的值。更新t,取出棧頂後繼續找,直到放進第乙個集合k個值,或是棧空且沒有x能滿足x<=t+1為止。
複雜度:o(tm)。
JOISC 2020 Day1 建築裝飾 4
loj 考慮設 f 表示到了第 i 個位置,用了 j 個a,k 個b的可行性,打表發現對於 i,j 的 k 是連續的,所以考慮記錄 l 表示前 i 個位置用了 j 個a最少用多少個b,r 同理.最後輸出方案的時候一步一步的倒推即可.include include include include in...
2023年PHP基礎學習day01
b true 定義布林型變數 a 你好,安德風 雙引號輸出 echo 單引號輸出 定義乙個i變數 echo 圓周率三種寫法 echo 第一種方法 pi pi echo 第二種方法 3.14159265359 3.14159265359 echo 第二種方法 314159265359e 11 3141...
2020牛客國慶集訓派對day5
題目ab cdef ghij ksolved 比賽時通過 賽後通過 比賽時嘗試了未通過 比賽時未嘗試 solved by sstee1xd.3 31 7 題意 問你在1 n 1 n1 n中有多少個數字在k kk進製與 k k k進製表示下結果相同。題解 轉換一下就是要求正負進製下只有奇數字有數字的數...