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 }
View Code

 

你可能感兴趣的:(codeforces)