专栏文章
题解:P11035 【MX-X3-T2】「RiOI-4」消えた夏の夢
P11035题解参与者 6已保存评论 5
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mins31g0
- 此快照首次捕获于
- 2025/12/02 07:26 3 个月前
- 此快照最后确认于
- 2025/12/02 07:26 3 个月前
众所周知加法有交换律,所以打乱操作顺序对结果没有影响,所以我们可以考虑对序列 中的每个数分别考虑。
对于一个数 ,设 为操作前的 , 为操作前的 。
一次操作:
- ;
- 。
两次操作:
- ;
- 。
所以,两次操作相当于不操作。所以,对于每个数,我们只需要确定是否需要操作即可。
题目要求 最大,而每次操作如果 大于 就会变大,小于等于 就不会变大(如果小于 反而会变小)。因此,只需要在 的时候进行操作即可。
由于操作只进行一次,因此操作中 的变化不会影响到后续结果,所以代码里只需要体现操作中 的变化,不用写出 的变化。
代码
CPP#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, p, x;
// 代码中的 x 相当于题目中的 a[i],p 相当于题目中的 x
void solve()
{
cin >> n >> p;
while (n--)
{
cin >> x;
if (x > 0) // 如果大于 0 就进行操作
{
p += x;
}
}
cout << p;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
ll t = 1;
// cin >> t;
while (t--)
{
solve();
}
return 0;
}
相关推荐
评论
共 5 条评论,欢迎与作者交流。
正在加载评论...