@[喵喵喵__](/user/429572)
```cpp
if(variance < 0)variance += 20005;
```
这么写的话 `variance >= 0` 的情况不是没加吗
by 阿丑 @ 2021-06-07 17:54:19
@[阿丑](/user/364963) 阿里嘎多!非常感谢!终于A了哈哈哈
by 喵喵喵__ @ 2021-06-07 19:00:36
修改之后的代码,以诫后人。
```cpp
#include<stdio.h>
#define max(a, b) (a > b ? a : b)
#define min(a, b) (a < b ? a : b)
const int MAXn = 1e4 + 5;
const int MOD = 998244353;
int read(){
int w = 0, r = 0;char ch = getchar();
while(ch <'0' || ch > '9')w|=ch == '-', ch = getchar();
while(ch >= '0' && ch <= '9')r = (r<<1)+(r<<3)+(ch^48), ch = getchar();
return w ? ~r + 1 : r;
}
int n, a[MAXn], b[1005][40010];
int sta[MAXn], top;
bool vis[40010];
int main(){
n = read();
int ans = 0;
for(int i = 1; i <= n; i++)a[i] = read();
for(int i = 2; i <= n; i++){
for(int j = 1; j <= i - 1; j++){
int variance = a[i] - a[j];
if(variance < 0)variance += 40005;
b[i][variance] += b[j][variance] + 1;
b[i][variance] %= MOD;
vis[variance] = 1;
sta[++top] = variance;
}
do{
int p = sta[top--];
if(vis[p]){
ans += b[i][p];
ans %= MOD;
vis[p] = false;
}
}while(top);
}
printf("%d", (ans + n)%MOD);
return 0;
}
```
by 喵喵喵__ @ 2021-06-07 19:01:57
用c写代码的才是真正的大佬!膜拜!我也是这几个测试点wa了,今日一见,果然ac了!!!
by liquid9 @ 2022-03-27 23:12:16