找到区间内第一个偶数坐标,按步长 2 枚举函数值并乘以坐标间距。
OJ: shumeng
题目 ID: CSP202503A
难度:入门
标签:模拟数学
日期: 2026-07-31 16:21
形式化题目
给定二次函数
求整数
思路
直接按题意模拟采样过程,分两步完成。
确定第一个采样点
采样点的横坐标必须是偶数。若
以步长 2 累加
从
代码
cpp
/**
* Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
* rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
* rainboy的学习导航网站: https://idx.roj.ac.cn
* create_at: 2026-07-31 16:21
* update_at: 2026-08-17 22:46
*/
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
long long b, c, l, r;
cin >> b >> c >> l >> r;
// 找到区间内第一个偶数坐标作为采样起点
long long first = l;
if (first % 2 != 0) first++;
// 以步长 2 枚举所有偶数坐标点,累加对应函数值
long long answer = 0;
for (long long x = first; x <= r; x += 2) {
answer += x * x + b * x + c;
}
// 估算积分等于函数值之和乘以采样间距 2
cout << answer * 2 << '\n';
return 0;
}复杂度
设区间内偶数点数量为
总结
本题的关键是正确处理第一个偶数采样点,以及相邻采样点之间步长为 %2 判断起点,再用循环步长