您的位置:首页 > 其它

POJ_1083

2013-11-12 14:30 239 查看
思路:

1. 将corridor抽象为一个计数器数组,一对房间的corridor为一个元素,然后计算每个过道元素被经过几次,整个数组被经过最多的过道元素即为最少搬运组数。

//132k  0ms

#include <cstdio>
#include <cstdlib>
#include <cstring>

int main() {
int T, N, st, en;
char corridor[200];
scanf("%d", &T);
while (T--) {
memset(corridor, 0, 200);
scanf("%d", &N);
for (int i = 0; i < N; ++i) {
scanf("%d %d", &st, &en);
if (en < st) {
en ^= st, st ^= en, en ^= st;
}
st = st & 1 ? st / 2 : (st - 1) / 2;
en = en & 1 ? en / 2 : (en - 1) / 2;
for ( ; st <= en; ++st)
++corridor[st];
}
char max = corridor[0];
for (int i = 1; i < 200; ++i) {
if (corridor[i] > max)
max = corridor[i];
}
printf("%d\n", max * 10);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: