解题报告:poj1083 Moving tables
2017-09-02 19:49:59
writer:pprp
题意说明:
比较简单的题,一开始被吓到了,后来才发现,其实可以用很简单的方法就可以解决;
就是在这样的房间中如果在i 和 j 中之后的10分钟内就不可以经过别的路线的桌子,给你几组数据问你最短时间搬完这些桌子;
分析:
其实不是很难,不要往线段树之类的数据结构去考了,这就是一个简单题,
直接遍历(a-1)/2 到 (b-1)/2就可以了,开一个200的数组,进行操作就OK了
代码如下·:
/*
@theme:poj1083
@writer:pprp
@begin:19:30
@end:19:50
@declare:很简单的遍历就OK
@error:审题要仔细,理解题意,
不能只理解大概,记得要把freopen给注释了再提交
@date:2017/9/2
*/
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int arr[200];
int main()
{
freopen("in.txt","r",stdin);
int cas, N, Max = 0;
int a, b;
cin >> cas;
while(cas--)
{
Max = -10;
memset(arr,0,sizeof(arr));
cin >> N;
for(int i = 0 ; i < N ; i++)
{
cin >> a >> b;//to mentain a < b
if(a > b)
swap(a,b);
for(int i = (a-1)/2 ; i <= (b-1)/2 ; i++)
{
arr[i]++;
}
}
for(int i = 0 ; i < 200; i++)
{
Max = max(Max,arr[i]);
}
cout << Max * 10 << endl;
}
return 0;
}
代码改变世界