30分求助,样例过了,关注

P2141 [NOIP2014 普及组] 珠心算测验

@[AndyChen130130](/user/1054257) 你把重复的也计算进去了,建议可以开一个用于标记的数组。
by cmask4869 @ 2024-03-01 22:48:27


@[cmask4869](/user/1029495) 咋实现?
by AndyCGM @ 2024-03-01 22:50:18


```cpp #include <iostream> using namespace std; int a[114], hs[114514]; int main(){ int n; cin >> n; for (int i=1; i<=n; i++){ cin >> a[i]; } int ans=0; for (int i=1; i<=n; i++){ for (int j=1; j<=n; j++){ for (int k=1; k<=n; k++){ // if (i!=j && k!=i && k!=j && a[i]+a[j]==a[k] && !hs[a[k]]){ ans++; hs[a[k]]++; } } } } cout << ans; } ``` @[AndyChen130130](/user/1054257)
by 杜都督 @ 2024-03-01 23:06:50


@[杜都督](/user/39279) 谢了
by AndyCGM @ 2024-03-01 23:09:34


@[AndyChen130130](/user/1054257) 看这个[**题解**](https://www.luogu.com.cn/article/xykjgvca),里面的b数组记录方法就是的,这篇和你的方法差不多。
by cmask4869 @ 2024-03-01 23:19:25


@[AndyChen130130](/user/1054257) ``` #include <bits/stdc++.h> int a, b, c[110], f[110], t, i, x, y, z, n, ans; int main() { scanf("%d", &n); for (int j = 1; j <= n; j++) { scanf("%d",&c[j]); f[j]=0; } for (int j = 1; j <= n; j++) { for (i = 1; i <= n; i++) { for (t = 1; t <= n; t++) { if (c[j] == c[i] + c[t]) { if ( j != i && i != t && j != t && f[j] == 0) { ans++; f[j] = 1; } } } } } printf("%d", ans); return 0; } 求关×1 QwQ ```
by luoguliuqinrui @ 2024-03-23 10:29:22


|