2020文件写错,准备杀回去
by 拾然z @ 2022-07-07 18:42:18
@[拾然z](/user/312063) pow 会丢失精度导致你会输出比如说 1.048e6 这种鬼东西。强制转换成 int 谢谢喵
by irris @ 2022-07-07 18:43:15
@[AlgorithmerSnow](/user/419487) 好的谢谢√
by 拾然z @ 2022-07-07 18:44:12
寄,强转了之后只有35了,三个超时……
by 拾然z @ 2022-07-07 18:56:05
程序应该有问题,求调……
by 拾然z @ 2022-07-07 18:56:37
@[拾然z](/user/312063)
```cpp
// code from 312063
#include <bits/stdc++.h>
using namespace std;
int main() {
int a; cin >> a;
if (a % 2 == 1) return cout << -1, 0;
for (int p = 1 << 25; p; p >>= 1) if (p <= a)
cout << p << ' ', a -= p;
return 0;
}
```
从你的代码上改的 100 pts。
by irris @ 2022-07-07 19:01:52
@[AlgorithmerSnow](/user/419487) 谢大佬>_<
by 拾然z @ 2022-07-07 19:02:49
@[AlgorithmerSnow](/user/419487) for中间的条件是……
by 拾然z @ 2022-07-07 19:05:47
@[拾然z](/user/312063) 把 $p$ 设为 $2^{25}$;重复执行直到 $p = 0$;每次循环后 $p \leftarrow \lfloor \dfrac{p}{2} \rfloor$。(这里要利用一个性质就是 $\sum\limits_{i=1}^{n}2^i \lt 2^{i+1}$,既每个数有唯一的二进制表示,那么我们贪心地选取肯定是对的)
> 一定要在今年十月之前找回手撕蓝题的手感!
> 在热心网友的推荐下,手动切了第一个黑(
我觉得您看起来不像不会位运算的样子啊。
by irris @ 2022-07-07 19:09:25
@[AlgorithmerSnow](/user/419487) 一年半了早忘了……
by 拾然z @ 2022-07-07 19:10:54