給定 $n$ 個物品,體積分別為 $v_i$,現有 $k$ 的容積一樣的箱子,按如下策略裝入物品:每次選取盡可能大的裝入(較大的不能裝入時可以向小的找),依次裝入箱子。
首先,不具有嚴格的單調性,即可能大的箱子不符合但小的符號。與我們的直覺有點不同,是這個策略造成的。
但是基本單調,最優解應該在二分結果附近,於是有了方法一。
方法二:找出答案的上下界,下界 $\left \lceil sum/k \right \rceil$,上界 $ \left \lceil sum/k \right \rceil + maxv$,列舉。
#includeusingnamespace
std;
const
int maxn = 1000 + 10
;int
n,k,a[maxn];
multiset
st;bool judge(int
mid)
}if(!st.empty()) return
false
;
return
true;}
intmain()
int l = 1, r = 1000000
, ans;
while(l else l = mid+1
; }
int res = ans; //
printf("%d\n", ans);
for(int i = max(1, ans-100);i <= ans;i++) //
往小一點嘗試一下
if(judge(i))
printf(
"case #%d: %d\n
", ++kase, res);
}return0;
}
1. 2.
2019牛客多校第九場
由題意可設x y kp bx y kp b x y kp b代入第二個式子中可以得到kpx bx x2 c mod kpx bx x 2 equiv c mod kpx bx x2 c modp p p 第一項是p的倍數可以約掉,所以有x2 bx c 0 m od x 2 bx c equiv 0 ...
2019牛客多校 Round8
solved 3 rank 261 e explorer 線段樹 題意 n個點 m條邊 每條邊只有身高l,r內的人可以穿過 問有幾種身高可以從1走到n 題解 把l,r離散化後 左閉右開 線段樹葉子節點維護區間 然後從線段樹根節點dfs下去 這個區間能不能產生貢獻的關鍵在於1和n的聯通 所以用可撤銷的...
2019牛客多校 Round3
solved 3 rank 105 治哥出題了 我感動哭了 a graph game 分塊 題意 1e5個點 2e5條邊 s x 表示與x點直接相鄰的點集合 有兩種操作 1種將按輸入順序的邊第l條到第r條邊翻轉 連線 切斷 切斷 鏈結 還有一種詢問 s x 與s y 是否相等 題解 題解說 可以給每...