题解:P17134 [KOI 2026 #1] 邻居
wanganze
·
·
题解
题意
有 n 个学生住在自己编号对应的房屋中,距离就是学生编号之差,定义邻居为同校学生距离 \le m 或者异校学生距离 \le k。求每个学生的邻居数(自己除外)。
分析
对于判断,我们根据是否为同校得到距离的限制,然后如果在限制内答案就加 $1$。
注意判一下学生 $j$ 是否是自己即可。复杂度 $O(n^2)$。
## 代码
```cpp
#include<bits/stdc++.h>
using namespace std;
const int N = 3010;
int a[N];
int main()
{
int n,m,k;
cin>>n>>m>>k;
for(int i = 1; i <= n; i ++) cin>>a[i];
for(int i = 1; i <= n; i ++)
{
int res = 0;
for(int j = 1; j <= n; j ++)
if(i != j) res += abs(i - j) <= (a[i] == a[j] ? m : k);
cout<<res<<' ';
}
cout<<'\n';
return 0;
}
```