标签:
t题目链接:http://lightoj.com/volume_showproblem.php?problem=1017
1 #include <algorithm> 2 #include <iostream> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cstdio> 6 #include <vector> 7 #include <ctime> 8 #include <queue> 9 #include <list> 10 #include <set> 11 #include <map> 12 using namespace std; 13 #define INF 0x3f3f3f3f 14 typedef long long LL; 15 16 int x[110], a[110]; 17 int dp[110][110]; 18 int main() 19 { 20 int t, n, w, k; 21 scanf("%d", &t); 22 for(int ca = 1; ca <= t; ca++) 23 { 24 scanf("%d %d %d", &n, &w, &k); 25 for(int i = 0; i < n; i++) 26 scanf("%d %d", &x[i], &a[i]); 27 sort(a, a+n); 28 memset(dp, 0, sizeof(dp)); 29 int res = 0; 30 for(int i = 0; i < n; i++) 31 { 32 for(int j = i; j < n; j++) 33 { 34 if(a[j] - a[i] <= w) 35 dp[i][1]++; 36 else 37 break; 38 } 39 res = max(res, dp[i][1]); 40 } 41 for(int i = 1; i < n; i++) 42 { 43 for(int j = 2; j <= k; j++) 44 { 45 for(int l = 0; l < i; l++) 46 { 47 if(a[i] - a[l] > w) 48 dp[i][j] = max(dp[i][j], dp[l][j-1] + dp[i][1]); 49 else 50 break; 51 } 52 res = max(res, dp[i][j]); 53 } 54 } 55 printf("Case %d: %d\n", ca, res); 56 } 57 return 0; 58 }
标签:
原文地址:http://www.cnblogs.com/luomi/p/5932979.html