每个案例第一行两个整数N,M,2 <= N ,M<= 200。接下来有N行,第i(i = 1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)
每个案例包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^ ^)
4 5 2 3 2 1
1 BeiJu 1 BeiJu
#include<iostream> (720)#include<cstdio> #include<map> using namespace std; int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF){ map<int,int> book_num;//map<书编号,人数> map<int,int> stu_book;//map<读者号,书编号> for(int i=0;i<n;i++){//第i个读者 int bookNumber; scanf("%d",&bookNumber); stu_book[i]=bookNumber;//第i个读者喜欢看的书编号为bookNumber; book_num[bookNumber]++;//同时把喜欢看书编号为bookNumber的人数+1 } map<int,int>::iterator it; for(it=stu_book.begin();it!=stu_book.end();it++){//读者号从0~n-1 int num=book_num[it->second]-1;//把自己减掉 if(num==0){ printf("BeiJu\n"); }else{ cout<<num<<endl; } } } return 0; }
#include<bits/stdc++.h> using namespace std; int main() { int n,m; while(cin>>n>>m) { map<int,int>likeCount;//建立喜欢某本书的人数 int reader[n];//记录读者最喜欢哪本书 for(int i=0;i<n;i++) { int num; cin>>num; likeCount[num]++; reader[i]=num; } for(int i=0;i<n;i++) { if(likeCount[reader[i]]>1)//大于一说明至少有两个人喜欢这本书 cout<<likeCount[reader[i]]-1<<endl; else cout<<"BeiJu"<<endl; } } return 0; }
#include<bits/stdc++.h> using namespace std; map<int ,int>num; const int maxx=205; int book[maxx];//存放读者i喜欢的书的编号 int main() { int n,m; while(cin>>n>>m) { for(int i=0;i<n;i++) { int x; cin>>book[i]; x=book[i]; num[x]++;//映射值加一; } map<int,int>::iterator it; for(int i=0;i<n;i++) { if(num[book[i]]==1) cout<<"BeiJu"<<endl; else { int ans=num[book[i]]-1; cout<<ans<<endl; } } } return 0; }
#include<stdio.h>//1.直接全部的人进行比较除去自己跟自己比较 int main()//2.建立新数组 有相同的人数加一 人数为0则输出BeiJu { int n,m,i,j,a[200],b[200],num; scanf("%d%d",&n,&m);//输入 for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) { num=0; for(j=1;j<=n;j++) { if(i!=j)//别跟自己比较 if(a[i]==a[j]) num++; } b[i]=num; } for(i=1;i<=n;i++) { if(b[i]==0) printf("BeiJu\n"); else printf("%d\n",b[i]); } }
//map加数组实现 #include<iostream> (720)#include<cstdio> #include<map> using namespace std; int main(){ int m,n,x; int number[200]; map<int,int> myMap; while(scanf("%d%d",&n,&m)!=EOF){ myMap.clear(); for(int i=0;i<n;i++){ scanf("%d",&x); number[i]=x; myMap[x]++; } for(int i=0;i<n;i++){ if(myMap[number[i]]==1) printf("BeiJu\n"); else printf("%d\n",myMap[number[i]]-1); } } return 0; }
#include <iostream> #include <map> #include <vector> using namespace std; int main(){ int n,m; while(cin>>n>>m){ vector<int> vec(n); map<int,int> ma; for(auto& a:vec){ cin>>a; ma[a]++; } for(const auto& a:vec){ auto& t =ma[a]; if(t==1) cout<<"BeiJu"<<endl; else cout<<t-1<<endl; } } return 0; }map和vector应用
#include "stdio.h" int main(){ int n, m, a[200],b[200],i,j; while(~scanf("%d%d",&n, &m)){ for(i = 0; i < n; i++){ scanf("%d",&a[i]); b[i] = 0; } //比较两个同学喜欢的书籍是否一致, //一致则将记录每个同学潜在好友数的数组+1 for(i = 0;i < n; i++){ for(j = 0; j < n; j++){ if(a[i] == a[j]) b[i] += 1; } b[i] -= 1;//把兴趣和自己一样的自己剪掉 } for(i = 0; i < n; i ++){ if(b[i] == 0) printf("BeiJu\n"); else printf("%d\n",b[i]); } } return 0; }
#include<iostream> using namespace std; int main(){ int n,m; cin>>n>>m; int* book=new int[n]; for(int i=0;i<n;i++) cin>>book[i]; int* friends=new int[n]; for(int i=0;i<n;i++) friends[i]=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ if(book[i]== book[j]){ friends[i]++; friends[j]++; } } } for(int i=0;i<n;i++){ if(friends[i]==0) cout<<"BeiJu"<<endl; else cout<<friends[i]<<endl; } }
#include<stdio.h> int main() { int i,d; int N,M; while(scanf("%d %d",&N,&M)!=EOF) { int reader[201]={0},book[201]={0}; for(i=1;i<=N;i++) { scanf("%d",&d); reader[i]=d; book[d]++; } for(i=1;i<=N;i++) { if(book[reader[i]]==1) printf("BeiJu\n"); else printf("%d\n",book[reader[i]]-1); } } return 0; }
#include<iostream> using namespace std; int main(){ int n,m; cin>>n>>m; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<n;i++){ int count =0; for(int j=i+1;j<n;j++){ if(a[i]==a[j]){ count++; } } for(int j =0;j<i;j++){ if(a[i]==a[j]){ count++; } } if(count==0){ cout<<"BeiJu"<<endl; } else cout<<count<<endl; } }
#include<iostream> #include<algorithm> using namespace std; int main() { int n, m, a[300]; cin >> n; cin >> m; for(int i=0; i<n; i++) cin >> a[i]; for(int i=0; i<n; i++) { if(count(a, a+n, a[i]) > 1) cout << count(a, a+n, a[i])-1 << endl; else cout << "BeiJu" << endl; } return 0; }
#include <iostream> #include <algorithm> using namespace std; const int N=210; int n,m; int ren[N];//里面放他喜欢的书的编号 int fd[N]; int main() { scanf("%d%d",&n,&m);//N个读者,M本书 for(int i=1;i<=n;i++){ scanf("%d",&ren[i]); } for(int i=1;i<=n;i++){//一个读者一个读者的找 for(int j=1;j<=n;j++){//每个读者遍历一遍 if(ren[i]==ren[j] && (i!=j)){ fd[i]++;//该读者朋友+1 } } } for(int i=1;i<=n;i++){ if(fd[i]!=0) printf("%d\n",fd[i]); else printf("BeiJu\n"); } return 0; }
#include <iostream> using namespace std; int stu[10010],books[210]; int main(int argc, char const *argv[]) { int n,m; scanf("%d %d",&n,&m); int fa_book; for(int i = 0;i<n;i++) { scanf("%d",&fa_book); stu[i] = fa_book; books[fa_book]++; } int flag; for(int i = 0;i<n;i++){ flag = books[stu[i]] - 1; if(flag == 0 ) printf("BeiJu\n"); else printf("%d\n",flag); } return 0; }
#include <iostream> #include <vector> #include<algorithm> using namespace std; int main() { int n,m; while(cin>>n>>m){ vector<int> v(n); for(int i=0;i<n;i++){ int book; cin>>book; v[i] = book; } for(int i=0;i<n;i++){ int num = count(v.begin(),v.end(),v[i])-1; num==0?cout<<"BeiJu"<<endl:cout<<num<<endl; } } return 0; }
#include <iostream> #include<map> using namespace std; int main() { int n,m; cin>>n>>m; map<int,int>book; map<int,int>person; for(int i=1;i<=n;i++){ int t; cin>>t; person[i]=t; book[t]++; } for(int j=1;j<=n;j++){ if((book[person[j]]-1)==0) cout<<"BeiJu"<<endl; else cout<<book[person[j]]-1<<endl; } return 0; }