只有20分大佬们帮忙看看 求

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

@[brian0410](/user/276225) 输入的数字一定有单调性吗?不一定哦Q。 所以你的 ```cpp for(int j=1;a[j]<=i-1;j++) ``` 当 $a_j\geqslant i$ 时 for 循环就直接跳出了,但是后面可能有一些合法的数字。 把 for 循环条件改为 $j\leqslant n$,之前的循环条件移到下面的 if 语句,所以改为这样: ```cpp for(int j=1;j<=n;j++){ if(i>a[j]&&b[i-a[j]]&&i-a[j]!=a[j]){ ans++; break; } } ```
by MarchKid_Joe @ 2023-02-10 07:47:45


``` #include<bits/stdc++.h> using namespace std; int main() { int n,n1,n2,n3,a[105],ans = 0; bool vis[10005] = {0}; cin >> n; for(int i = 1;i <= n;i++){ cin >> a[i]; } for(int i = 1;i <= n;i++) { n1 = a[i]; for(int j = 1;j <= i-1;j++) { n2 = a[j]; for(int k = 1;k <= n;k++) { n3 = a[k]; if(n1+n2==n3&&vis[n3]==false) { vis[n3] = true; ans++; } } } } cout << ans; return 0; }
by DREAM_flyfish @ 2023-02-18 10:34:45


|