社区讨论

分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 条回复,欢迎继续交流。

正在加载回复...