专栏文章
题解:AT_abc417_c Distance Indicators
AT_abc417_c题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miok2gih
- 此快照首次捕获于
- 2025/12/02 20:29 3 个月前
- 此快照最后确认于
- 2025/12/02 20:29 3 个月前
观察式子:,移项可得:,发现此时等式左边只与 有关,右边只与 有关。
考虑枚举 ,每次将答案加上满足 的 的数量。
那么我们就需要先开一个 map,记为
cnt,在输入的时候对于每一个元素,进行 cnt[i - a[i]]++ 的操作。然后在枚举到每一个 的时候,进行 ans += cnt[i + a[i]] 统计答案。题目说了 ,我们这样统计会不会统计进 的情况?其实不会,题目保证了 ,因此不会有 的情况。
CPP#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5 + 5;
int n, a[N];
map <int, int> cnt;
int main(){
ios :: sync_with_stdio(false);
cin >> n;
for(int i = 1; i <= n; i++) cin >> a[i], cnt[i - a[i]]++;
ll ans = 0;
for(int i = 1; i <= n; i++)
ans += cnt[i + a[i]];
cout << ans;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...