173 条题解
- 
  0wangjun_92 LV 6 @ 2018-02-27 10:15:16 import java.util.ArrayList; 
 import java.util.HashSet;
 import java.util.List;
 import java.util.Scanner;
 import java.util.Set;public class Main { 
 public static void main(String[] args){
 Scanner scanner = new Scanner(System.in);
 int n = scanner.nextInt();
 List<Integer> list = new ArrayList<Integer>();
 for(int i=0;i<n;i++){
 int m = scanner.nextInt();
 list.add(m);
 }
 Set<Integer> set = new HashSet<Integer>();
 for(Integer i:list){
 for(Integer j:list){
 if(i != j){
 int m = i + j;
 if(list.contains(m)){
 set.add(m);
 }
 }
 }
 }
 System.out.println(set.size());
 scanner.close();
 }
 }
- 
  0@ 2018-02-09 09:12:47#include<iostream> #include<cstdio> using namespace std; bool flag[100010]; int a[1010]; int main(){ int n;int ans=0; scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d",&a[i]); flag[a[i]]=1; } for(int i=1;i<=n;++i){ for(int j=i+1;j<=n;++j){ if(flag[a[i]+a[j]]==1){ flag[a[i]+a[j]]=0; ans++; } } } printf("%d",ans); return 0; }
- 
  0@ 2018-01-14 11:28:45
- 
  0@ 2018-01-07 11:11:38#include <stdio.h> 
 #include <stdlib.h>
 #include <math.h>
 #include <string.h>int main() 
 {
 int n,i,j,k,c=0,a[100],t,b[100];
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
 scanf("%d",&a[i]);
 }
 for(i=0;i<n-1;i++)
 for(j=0;j<n-1;j++)
 {
 if(a[j]>a[j+1])
 {
 t=a[j];a[j]=a[j+1];a[j+1]=t;
 }
 }
 for(i=0;i<n;i++)
 b[i]=a[i];
 for(i=0;i<n-2;i++)
 for(j=i+1;j<n-1;j++)
 for(k=j+1;k<n;k++)
 {
 if(a[i]+a[j]==a[k]&&b[k]!=0)
 {c++;b[k]=0;}
 }
 printf("%d\n",c);
 return 0;
 }
- 
  0@ 2018-01-05 14:28:14C++比较好理解的方法: 
 #include<iostream>
 using namespace std;int main() 
 {
 int n,tot=0;
 cin>>n;
 int m[n];
 for(int i=0;i!=n;++i)
 cin>>m[i];
 //先排序:
 for(int i=0;i!=n-1;++i)
 {
 int maxid=0;
 for(int j=1;j!=n-i;++j)
 if(m[j]>m[maxid]) maxid=j;
 int t=m[maxid];
 m[maxid]=m[n-1-i];
 m[n-1-i]=t;
 }
 //定义一个数组避免重复得结果:
 int a[n];
 for(int i=0;i!=n;++i)
 a[i]=m[i];
 //循环判断:
 for(int i=0;i!=n-2;++i)
 {
 for(int j=i+1;j!=n-1;++j)
 {
 for(int k=j+1;k!=n;++k)
 if(m[i]+m[j]==a[k]) {++tot;a[k]=0;}
 }
 }
 cout<<tot<<endl;
 }
- 
  0@ 2017-12-07 14:40:08#include <iostream> 
 #include <vector>
 #include <unordered_map>
 using namespace std;int main() 
 {
 int N;
 unordered_map<int, int> s;
 std::cin >> N;
 vector<int> nums(N, 0);
 for (int i = 0; i < N; ++i) {
 std::cin >> nums[i];
 s[nums[i]]++;
 }int result = 0; for (int i=0; i<nums.size(); ++i) { 
 for (int j=i+1; j<nums.size(); ++j) {
 if (s.find(nums[i]+nums[j])!=s.end()) {
 if (s[nums[i]+nums[j]] == 1)
 result++;
 s[nums[i]+nums[j]]++;
 }
 }
 }
 std::cout << result;
 }
- 
  0@ 2017-12-07 11:09:53n = int(raw_input()) 
 a = [int(i) for i in raw_input().split()]
 s = set([i + j for i in a for j in a if i != j and i + j in a])
 print len(s)
- 
  0@ 2017-12-01 11:25:19//可以不用数组保存的啊,有个计数器就好啦,下面是已通过的代码 #include <stdio.h> #include <stdlib.h> int main() { int n = 0; scanf("%d", &n); int *nums = (int*)malloc(sizeof(int)*n); for (int i = 0; i < n; i++) { scanf("%d", &nums[i]); } int count = 0; for (int i = 0; i < n; i++) { int had_find = 0; for (int j = 0; j < n - 1; j++) { for (int k = j+1; k < n; k++) { if (k == i || k == j) continue; if (nums[j] + nums[k] == nums[i]) { ++count; had_find = 1; break; } } if (had_find != 0) break; } } printf("%d", count); }
- 
  0@ 2017-11-28 14:18:06#include<cstdio> int t[200010], g[200010]; int n, a[105], count=0; int main() { scanf("%d", &n); for(int i=1; i<=n; i++) { scanf("%d", &a[i]); g[a[i]]=1; } for(int i=1; i<n; i++) for(int j=i+1; j<=n; j++) t[a[i]+a[j]]++; for(int i=1; i<=200002; i++) if(t[i]>0&&g[i]) count++; printf("%d", count); return 0; }
- 
  0@ 2017-11-10 21:21:09终于过了 #include <stdio.h> int main() 
 {
 int a[100];
 int c[100];
 int i,j,n,k,l,b,s;
 scanf("%d",&n);
 s=0;
 for(i=1;i<=n;i++) scanf("%d",&a[i]);
 for(i=1;i<=n;i++) c[i]=-1;
 for(i=1;i<=n;i++)
 for(j=i+1;j<=n;j++)
 for(k=1;k<=n;k++) {
 b=a[i]+a[j];
 if(b==a[k]){
 for(l=1;l<=n;l++) if(a[k]==c[l]) {
 l=0;break;}
 if(l==0) break;
 s++;
 c[s]=b;}} 
 printf("%d",s);} 
- 
  0@ 2017-11-09 19:43:11//以通过 
 #include <iostream>
 #include <vector>
 #include <algorithm>
 using namespace std;bool equal(vector<int>&vec2, int val) 
 {
 for (auto i = vec2.begin(); i != vec2.end(); i++)
 {
 if (val == *i)
 {
 i = vec2.erase(i); //注意erase用法
 return 1;
 }
 }
 return 0;} 
 int main()
 {
 vector<int>vec1,vec2;
 int n, t , count = 0;
 cin >> n;while (n--) 
 {
 cin >> t;
 vec1.push_back(t); //存入
 }
 sort(vec1.begin(),vec1.end()); //排序 注意排序用法
 vec2 = vec1;for (auto i = vec1.begin(); i != vec1.end(); i++) 
 {
 for (auto i2 = i+1; i2 != vec1.end(); i2++)
 {
 auto temp = *i2 + *i;if (equal(vec2, temp)) 
 count++;
 }
 }cout << count; 
 return 0;
 }
- 
  0@ 2017-11-01 17:16:25program lx; var a:array[1..110]of integer; b:array[1..110]of boolean; i,j,k,n,sum:longint; begin readln(n); for i:=1 to n do begin read(a[i]); b[i]:=false; end; i:=0; repeat i:=i+1; for j:=1 to n do for k:=1 to n do if (a[k]+a[j]=a[i])and(a[j]<>a[k]) then begin // writeln(a[j],'+',a[k],'=',a[i]); b[i]:=true; break; end; until i=n; for i:=1 to n do if b[i] then sum:=sum+1; write(sum); end.做了快不下10次 最后发现没看懂题 想复杂了(逃 
- 
  0@ 2017-11-01 11:38:54//纯暴力 
 #include<iostream>
 #include<cstdio>
 #include<cstdlib>
 using namespace std;
 int N[101],ans,vis[101];
 int main()
 {
 int n;cin>>n;
 for(int i=1;i<=n;i++)
 cin>>N[i];
 for(int i=1;i<=n;i++)
 {
 for(int j=1;j<=n;j++)
 for(int k=1;k<=n;k++)
 if(N[j]+N[k]==N[i]&&!vis[i]&&j!=k&&i!=j&&i!=k)
 {
 vis[i]=1;
 ans++;
 }
 }
 cout<<ans;
 return 0;
 }
- 
  0@ 2017-10-19 23:08:31#include<iostream> 
 using namespace std;
 const int maxn=200000;
 int a[maxn],fin[maxn],n,ans;
 int main ()
 {
 cin>>n;
 for (int i=1;i<=n;i++)
 cin>>a[i];
 for (int i=1;i<=n;i++)
 for(int j=i+1;j<=n;j++)
 fin[a[i]+a[j]]=1;
 for (int i=1;i<=n;i++)
 if (fin[a[i]])
 ans++;
 cout<<ans;
 }
- 
  0@ 2017-10-01 00:34:34注意需要处理第二行数字的个数 n = int(input()) lst = list(input().split(' ')) lst1=lst[:n] lst2= list(map(int,lst1)) times = [] for i in lst2: for j in lst2: if i < j and i + j in lst2 and i+j not in times: times.append(i+j) print(len(times))
- 
  0@ 2017-09-27 21:29:06#include<iostream> 
 using namespace std;
 int main()
 {
 int n,i,j,sum=0,c[20100],a[110];
 cin>>n;for(i=0;i<n;i++) 
 cin>>a[i];
 for(i=0;i<n-1;i++)
 for(j=i+1;j<n;j++)
 c[a[i]+a[j]]=1;
 for(i=0;i<n;i++) if(c[a[i]]==1)
 sum++;
 cout<<sum;
 }
- 
  0@ 2017-09-05 21:23:44#include <cstdio> int num[100086],n,cnt; bool exist[100086]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&num[i]); exist[num[i]] = 1; } for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { exist[num[i]+num[j]]=0; } } for(int i=1;i<=n;i++) { if(exist[num[i]] == 0) cnt++; } printf("%d\n",cnt); return 0; }
- 
  0@ 2017-08-31 20:39:38program num; 
 var
 i,ans,n,j,k:longint;
 a:array [1..100] of longint;
 g:array [1..10000] of longint;
 procedure kp(l,r:longint);
 var
 i,j,m,t:longint;
 begin
 i:=l; j:=r;
 m:=a[(l+r) div 2];
 repeat
 while a[i]<m do inc(i);
 while a[j]>m do dec(j);
 if i<=j then begin
 t:=a[i]; a[i]:=a[j]; a[j]:=t;
 inc(i); dec(j);
 end;
 until i>j;
 if l<j then kp(l,j);
 if i<r then kp(i,r);
 end;
 begin
 fillchar(g,sizeof(g),0);
 readln(n); ans:=0;
 for i:=1 to n do read(a[i]);
 kp(1,n);
 for i:=1 to n-2 do
 for j:=i+1 to n-1 do
 for k:=j+1 to n do
 if (a[i]+a[j]=a[k])and(g[a[k]]=0) then begin inc(g[a[k]]); inc(ans); end;
 writeln(ans);
 end.
- 
  0@ 2017-08-17 15:44:33#include<bits/stdc++.h> using namespace std; const int MAXN=111; int N,a[MAXN],vis[101000]; int main() { cin>>N; for(int i=1;i<=N;i++) cin>>a[i]; sort(a+1,a+1+N); int ans=0; for(int i=1;i<=N;i++) vis[a[i]]=1; for(int i=1;i<N;i++) for(int j=i+1;j<=N;j++) if(vis[a[i]+a[j]]==1) { vis[a[i]+a[j]]=0;//vis要清零 ans++; } cout<<ans<<endl; return 0; }
- 
  0@ 2017-08-14 10:57:22亲测AC代码(NB指the bigger number) #include <bits/stdc++.h> using namespace std; int n, i, j, sum, N[110], NB[100010]; int main() { cin >> n; for(i = 0; i < n; i++) { cin >> N[i]; NB[N[i]] = 1; } for(i = 0; i < n; i++) for(j = i + 1; j < n; j++) NB[N[i] + N[j]] = 0; for(i = 0; i < n; i++) if(NB[N[i]] == 0) sum++; cout << sum; return 0; }
信息
- ID
- 1911
- 难度
- 6
- 分类
- (无)
- 标签
- 递交数
- 17156
- 已通过
- 4540
- 通过率
- 26%
- 被复制
- 30
- 上传者