codeforces 432 B Football Kit
题意:给出n支球队,主场的衣服的颜色x[i],客场的衣服的颜色y[i],每只队伍会打n-1次主场,n-1次客场,当这只队伍打客场的衣服颜色和对手一样的时候,那么他们要穿上主场的衣服
问每个球队主场球服和客场球服分别穿了多少次
主场分两部分
1.本来n-1场穿的
2.打客场的时候和对手一样穿上主场的衣服
所以统计一下主场的每种颜色对应的衣服有多少件
那么对应于一只球队(x[i],y[i])
就是n-1+home[y[i]],n-1-home[y[i]]
题意好绕的说啊-----55555555555555
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include <cmath> 5 #include<stack> 6 #include<vector> 7 #include<map> 8 #include<set> 9 #include<queue> 10 #include<algorithm> 11 using namespace std; 12 13 typedef long long LL; 14 const int INF = (1<<30)-1; 15 const int mod=1000000007; 16 const int maxn=100005; 17 18 19 int home[maxn],away[maxn]; 20 int x[maxn],y[maxn]; 21 int cx[maxn],cy[maxn]; 22 23 int main(){ 24 int n; 25 scanf("%d",&n); 26 memset(home,0,sizeof(home)); 27 memset(away,0,sizeof(away)); 28 29 for(int i=1;i<=n;i++){ 30 cin>>x[i]>>y[i]; 31 home[x[i]]++; 32 away[y[i]]++; 33 } 34 35 for(int i=1;i<=n;i++){ 36 int u,v; 37 u=n-1+home[y[i]]; 38 v=n-1-home[y[i]]; 39 // printf("home[%d]=%d\n",y[i],home[y[i]]); 40 printf("%d %d\n",u,v); 41 } 42 return 0; 43 }