30求调

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

#### Code ```cpp #include <bits/stdc++.h> using namespace std; #define ll long long bool l[100001]; ll dfs(vector<int> arr, int n) { ll ans = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { for (int k = 0; k < n && k != j; ++k) if ((arr[i] == (arr[j] + arr[k])) && l[arr[i]] == 0) { l[arr[i]] = 1; ans++; //cout << ans << "1!!" << endl; } } //cout << i << " " << j << " " << k << endl; } return ans; } int main() { int n; vector<int> arr; cin >> n; for (int i = 0; i < n; ++i) { int temp; cin >> temp; arr.push_back(temp); } bool flag = 0; ll ans = dfs(arr, n); cout << ans << endl; return 0; } ```
by 13704085069a @ 2023-07-17 14:55:42


@[yxxlxtxx](/user/1026049) 建议排序后,从后往前推。 不然会算重。 比如: ```cpp #include<bits/stdc++.h> using namespace std; const int N=1010; int n,s; int a[N]; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+n+1); for(int k=n;k>=3;k--) { for(int i=1;i<=k-1;i++) { for(int j=i+1;j<=k-1;j++) { if(a[i]+a[j]==a[k]) { s++; goto a1;//防止算重,直接跳过 } } } a1:n=n; } cout<<s; return 0; } ```
by Aventurine_stone @ 2023-07-18 12:11:57


感谢大神
by yxxlxtxx @ 2023-07-18 14:16:02


```cpp #include<bits/stdc++.h> using namespace std; int a[105]; int main(){ int n,s=0; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); for(int i=2;i<=n;i++){ for(int j=1;j<=i-1;j++){ for(int k=j+1;k<i;k++){ if(a[i]==a[j]+a[k]){ s++; k=i,j=i; } } } } cout<<s; } ```
by Zhangmuchen @ 2023-07-23 15:52:47


|