1.24寒假集训
- 互联网
- 2025-08-05 15:21:02

A:
解题思路:
判断总和是否为偶数,如果是直接输出,不是就从最小的奇数开始减,直到为偶数为止
下面是c++代码:
#include<iostream> #include<algorithm> using namespace std; int main() { int n,arr[100000],Max = 0,sum = 0; cin >> n; for(int i = 0;i < n;i++){ cin >> arr[i]; sum += arr[i]; } if(sum % 2 == 0){ cout << sum; return 0; } sort(arr,arr + n); for(int i = 0;i < n;i++){ if(arr[i] % 2 != 0){ cout << sum - arr[i]; return 0; } } cout << 0; return 0; }B:
解题思路:
解方程题,没啥好说的,移项就好,输出2 * b - a
下面是c++代码:
#include<iostream> using namespace std; int main() { int a,b; cin >> a >> b; cout << 2 * b - a; return 0; }C:
解题思路:
如果arr[i] >= -1024 && arr[i] <= 1023,直接输出
否则判断arr[i] / 1024的奇偶性,如果为偶数,输出arr[i] % 1024
为奇数,输出-1024 + arr[i] % 1024
下面是c++代码:
#include<iostream> using namespace std; int main() { int n,arr[100000]; cin >> n; for(int i = 0;i < n;i++){ cin >> arr[i]; if(arr[i] >= -1024 && arr[i] <= 1023){ cout << arr[i] << " "; }else{ if((arr[i] / 1024) % 2 == 0){ cout << arr[i] % 1024 << " "; }else{ cout << -1024 + arr[i] % 1024 << " "; } } } return 0; }D:
解题思路:
每位相加对3取模依次输出就行
下面是c++代码:
#include<iostream> using namespace std; int main() { int a,b; cin >> a >> b; cout << (a / 100 + b / 100) % 3 << (a / 10 % 10 + b / 10 % 10) % 3 << (a % 10 + b % 10) % 3; return 0; }E:
解题思路:
化解序列T为2 * i - 1,再带入求和公式化简得前n项和n * n,依次取模再整体取模
下面是c++代码:
#include<iostream> #include<cmath> using namespace std; int main() { long long t,sum = 0; cin >> t; sum = ((t % 998244353) * (t % 998244353))%998244353; cout << sum; return 0; }