关于去重
我发现大家都用高深的看不懂的操作来去重,所以我就基于桶排的思想来去重
(主要是我太菜)
C++ 代码
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int N, P, H, M;
int a[10005];
bool appear[10005][10005];
int main()
{
cin >> N >> P >> H >> M;
a[1] = H;
for (int i = 1, A, B; i <= M; i ++ )
{
cin >> A >> B;
if(A > B) swap(A, B);
if(!appear[A][B])
{
appear[A][B] = 1;
a[A + 1] --, a[B] ++;
}
}
for (int i = 1; i <= N; i ++ )
a[i] += a[i - 1], cout << a[i] << endl;
return 0;
}
懂了
为什么将标记数组类型改为int 会MLE
因为int可以取范围内的任意值,bool只用2个值,占用空间小。
懂了
这才是最简单的做法
空间大了