#include <iostream>
#include <cstdlib>
#include <string>
#include <algorithm>
using namespace std;
struct node {
int start;
int end;
};
bool cmp(int a, int b) {
return a> b;
}
int main() {
int T;
int n;
int sum;
int tmp;
node a[450];
int dp[250];
cin>> T;
while(T--) {
cin >> n;
sum = 10;
for(int i = 0; i < n; i++){
cin>> a[i].start>> a[i].end;
if(a[i].start > a[i].end) {
tmp = a[i].start;
a[i].start = a[i].end;
a[i].end = tmp;
}
}
memset(dp, 0, sizeof(dp));
for(int j = 0; j < n; j++){
for(int i = (a[j].start-1)/2;i <= (a[j].end-1)/2; i++) {
dp[i]++;
}
}
sort(dp, dp+200, cmp);
cout << dp[0]*10<< endl;
}
// system("pause");
return 0;
}
POJ1083 Moving Tables
題目要求時間最少,即儘可能讓佔用不同走廊的桌子並行運行。
設置一數組:dp[200],初始化爲0。記錄每個走廊佔用的次數,所用時間極爲最大佔用次數*10
代碼:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.