Codeforces #246 (Div. 2) B. Football Kit
2014-05-16 11:11
155 查看
题意是:有n个队伍,每个队伍有主场衣服颜色x[i] 客场衣服颜色y[i]
每个队都要作为主场和另外n-1支客场队进行比赛
在这之中如果主场衣服和另一队的客场衣服颜色相同
那么客场队就换上自己的主场衣服(保证主场 客场衣服颜色不同)
最后输出每个队使用主场衣服和客场衣服的次数
开始的做法是暴力,因为n最大有10的5次方,当时想到会超时,但是看到那么多人写出来
想着不会很复杂啊,结果就抱着试一试的心态交了...毫无疑问的TLE了
接着就想着把算法优化为O(n)
解题思路:
每个队必然有(n-1)次作为主场参加比赛,所以每个队主场衣服最少使用(n-1)次
而主场衣服使用的另外一种情况是这个队作为客场参加比赛,客场衣服和别人的主场衣服颜色相同了,那么这个队就会再使用主场衣服,因此只要再加上这个队的客场衣服颜色在所有队的主场衣服颜色中出现的次数即可(数组x中y[i]出现的次数)
同理分析每个队的客场衣服,如果不出现颜色相同的情况就会使用(n-1)次,即最多使用(n-1)次
因此同上用(n-1)减去(数组x中y[i]出现的次数)
可以用一个数组记录y[i]在x中出现的次数,这样可以保证算法O(n)
代码如下:
每个队都要作为主场和另外n-1支客场队进行比赛
在这之中如果主场衣服和另一队的客场衣服颜色相同
那么客场队就换上自己的主场衣服(保证主场 客场衣服颜色不同)
最后输出每个队使用主场衣服和客场衣服的次数
开始的做法是暴力,因为n最大有10的5次方,当时想到会超时,但是看到那么多人写出来
想着不会很复杂啊,结果就抱着试一试的心态交了...毫无疑问的TLE了
接着就想着把算法优化为O(n)
解题思路:
每个队必然有(n-1)次作为主场参加比赛,所以每个队主场衣服最少使用(n-1)次
而主场衣服使用的另外一种情况是这个队作为客场参加比赛,客场衣服和别人的主场衣服颜色相同了,那么这个队就会再使用主场衣服,因此只要再加上这个队的客场衣服颜色在所有队的主场衣服颜色中出现的次数即可(数组x中y[i]出现的次数)
同理分析每个队的客场衣服,如果不出现颜色相同的情况就会使用(n-1)次,即最多使用(n-1)次
因此同上用(n-1)减去(数组x中y[i]出现的次数)
可以用一个数组记录y[i]在x中出现的次数,这样可以保证算法O(n)
代码如下:
#include <set> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define MAXN 100010 #define ll long long using namespace std; int y[MAXN]; int cx[MAXN], cy[MAXN]; int a[MAXN]; int main(void) { int n, x; while(cin >> n) { memset(cx, 0, sizeof(cx)); memset(cy, 0, sizeof(cy)); memset(a, 0, sizeof(a)); for(int i=0; i<n; ++i) { cin >> x >> y[i]; a[x]++; } for(int i=0; i<n; ++i) { cx[i] = n-1+a[y[i]]; cy[i] = n-1-a[y[i]]; } for(int i=0; i<n; ++i) { printf("%d %d\n", cx[i], cy[i]); } } return 0; }
相关文章推荐
- Codeforces Round #246 (Div. 2) B. Football Kit
- Codeforces Round #246 (Div. 2) - B. Football Kit
- Codeforces #246 (Div. 2) A. Choosing Teams
- Codeforces Round #246 (Div. 2) B. Football Kit
- Codeforces Round #246 (Div. 2):B. Football Kit
- Codeforces Round #246 (Div. 2) B. Football Kit
- Codeforces #246(div2)
- span和div的区别
- 在html中给div自动添加滚动体
- Codeforces Round #219 (Div. 2) B. Making Sequences is Fun
- Codeforces Round #271 (Div. 2)E. Pillars(dp+线段树优化)
- javascript实现控制div颜色
- Codeforces Round #345 (Div. 1) A. Watchmen
- Codeforces Round #372 (Div. 2) B. Complete the Word
- html内容超出了div或p的宽度如何换行让内容自动换行
- Codeforces Round #377 (Div. 2)D. Exams(二分/贪心)
- Codeforces Round #443 (Div. 1) C. Tournament(瞎搞???)
- window.print打印指定div
- DIV+CSS网页布局实用技巧
- 使用JavaScript打印网页指定DIV区域