1 条题解

  • 0
    @ 2025-8-24 22:46:35

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar L0vely_NaiL0ng
    可爱奶龙

    搬运于2025-08-24 22:46:35,当前版本为作者最后更新于2023-04-26 17:39:24,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    推柿子,得到 x=(yz)×(y+z)x = (y - z) \times (y + z),可知 xx 满足可以拆成 22 个奇偶性相同的数的乘积。

    如果是奇数,直接拆成 11 和它本身即可。

    如果是偶数,因为要拆成 22 个偶数,所以应是 44 的倍数,此时一种拆分为拆成 22xx 除以 22

    至此,答案为 llrr 中奇数和 44 的倍数的个数。

    #include<bits/stdc++.h>
    using namespace std;
    int f(int x) {//小于等于x的奇数个数 
    	if (!x) return 0;
    	return (x + 1) / 2;
    }
    int g(int x) {//小于等于x的4的倍数个数 
    	return x / 4;
    }
    int main() {
    	int l, r; cin >> l >> r;
    	cout << f(r) - f(l - 1) + g(r) - g(l - 1);
    	return 0;
    }
    
    • 1

    信息

    ID
    8666
    时间
    1000ms
    内存
    256MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者