社区讨论
分4步跳着算的思路不对么,能AC
P14074[GESP202509 五级] 有趣的数字和参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhj017qw
- 此快照首次捕获于
- 2025/11/03 18:30 4 个月前
- 此快照最后确认于
- 2025/11/03 18:30 4 个月前
这题不会做,看了题解,有了自己的一点见解。
既然4n,4n+1,4n+2,4n+3这样的区间,有趣的数的和一定是8n+3,
只需要使得ll = 4n 并且 ll > l
rr = 4n + 3 并且 rr < r
那么sum(ll,rr) 可以用等差数列求和,和的一半就是我们要求的。
还有就是左右两段的空间,[l , ll - 1] 和 [rr + 1,r]我们可以直接枚举计算就好了。
贴一下主要的代码(不要举报我啊)
CPP
cin >> l >> r;
LL ll = (l/4 + 1)*4;
LL rr = ll + (r - ll)/4*4 - 1;
ans = (ll + rr)*(rr - ll + 1)/4;
for(LL i = l;i <= ll - 1;i++) {
if(count(i)) ans += i;
}
for(LL i = rr + 1;i <= r;i++) {
if(count(i)) ans += i;
}
本题的数据偏弱了,r - l < 4的情况我没有特判
AI说我这个4步跳的思路是错的,唉!
回复
共 1 条回复,欢迎继续交流。
正在加载回复...