轩辕娅童 发表于 昨天 02:54

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]
查看完整版本: 2024 ICPC National Invitational Collegiate Programming Contest, Wuhan Site