HDOJ 1050:Moving Tables 解题报告

http://acm.hdu.edu.cn/showproblem.php?pid=1050

两个含有相同占用走廊段的移动无法同时进行 故移动次数取决于被占用次数最多的那段走廊 并与之相等

#include <iostream>
#include <algorithm>
//#include <fstream>
using namespace std;
int f[201];

int main()
{
	//ifstream cin("1050_input.txt");	//调试用
	int t, n, i, j, s, e;
	cin >> t;
	while( t-- ){
		memset( f, 0, sizeof(f) );
		cin >> n;	//n=1→200
		for( i=0; i<n; i++ ){
			cin >> s >> e;	//s=start e=end
			s = (s+1)/2;
			e = (e+1)/2;
			if( s > e ){	//保证s<=e
				int temp = s;
				s = e;
				e = temp;
			}
			for( j=s; j<=e; j++)
				f[j]++;		
		}
		int consume = 0;
		for( i=1; i<=200; i++ )
			consume = max( consume, f[i] );
		cout << consume*10 << endl;
	}
	//system("pause");
    return 0;
}

你可能感兴趣的:(HDOJ 1050:Moving Tables 解题报告)