2024 ICPC National Invitational Collegiate Programming Contest, Wuhan Site
传送门I
注意 :题目是要让 \(1\) 都在右边
K
通过手动模拟就可以发现规律, \(fppf\) 循环
B
贪心,位运算
按位枚举最小的最大值,哪一位必须要放1
这体现在如果这位后面全是 \(1\) 的时候,\(n\) 个数的总和开始首次小于目前的 \(sum\) ,就说明 当前位必须放 \(1\)
<ul>在枚举当前位的前一位时,发现此时的和 \(>\) 或 \(= sum\) ,那么在前一位放 \(1\) ,结果肯定会大于 \(sum\) ,不符合要求
枚举当前位的时候,此时和 \(< sum\),则在这一位放 \(1\),结果会 \(> n; for(int i = 0; i < n; i++) {int q; cin >> q; sum += q;} for(int i = 31; i >= 0; i--) { if(((1ll
页:
[1]