标签:size data read cto ide opened standard body free
题目链接:http://poj.org/problem?id=1456
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 13736 | Accepted: 6206 |
Description
Input
Output
Sample Input
4 50 2 10 1 20 2 30 1 7 20 1 2 1 10 3 100 2 8 2 5 20 50 10
Sample Output
80 185
Hint
Source
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <vector> 7 #include <queue> 8 #include <stack> 9 #include <map> 10 #include <string> 11 #include <set> 12 #define ms(a,b) memset((a),(b),sizeof((a))) 13 using namespace std; 14 typedef long long LL; 15 const double EPS = 1e-8; 16 const int INF = 2e9; 17 const LL LNF = 2e18; 18 const int MAXN = 1e4+10; 19 20 struct node 21 { 22 int p, d; 23 bool operator<(const node &x)const{ 24 return p>x.p; 25 } 26 }a[MAXN]; 27 int used[MAXN], n; 28 29 int main() 30 { 31 while(scanf("%d", &n)!=EOF) 32 { 33 memset(used, 0, sizeof(used)); 34 for(int i = 1; i<=n; i++) 35 scanf("%d%d", &a[i].p, &a[i].d); 36 sort(a+1, a+1+n); 37 38 int ans = 0; 39 for(int i = 1; i<=n; i++) 40 { 41 for(int j = a[i].d; j>=1; j--) 42 if(!used[j]) 43 { 44 used[j] = 1; 45 ans += a[i].p; 46 break; 47 } 48 } 49 50 printf("%d\n", ans); 51 } 52 53 }
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <algorithm> 6 #include <vector> 7 #include <queue> 8 #include <stack> 9 #include <map> 10 #include <string> 11 #include <set> 12 #define ms(a,b) memset((a),(b),sizeof((a))) 13 using namespace std; 14 typedef long long LL; 15 const double EPS = 1e-8; 16 const int INF = 2e9; 17 const LL LNF = 2e18; 18 const int MAXN = 1e4+10; 19 20 struct node 21 { 22 int p, d; 23 bool operator<(const node &x)const{ 24 return p>x.p; 25 } 26 }a[MAXN]; 27 int used[MAXN], fa[MAXN], n; 28 29 int find(int x) { return (fa[x]==-1)?x:fa[x]=find(fa[x]); } 30 31 int main() 32 { 33 while(scanf("%d", &n)!=EOF) 34 { 35 memset(used, 0, sizeof(used)); 36 memset(fa, -1, sizeof(fa)); 37 for(int i = 1; i<=n; i++) 38 scanf("%d%d", &a[i].p, &a[i].d); 39 sort(a+1, a+1+n); 40 41 int ans = 0; 42 for(int i = 1; i<=n; i++) 43 { 44 int j = find(a[i].d); 45 if(j>0) 46 { 47 fa[j] = j-1; 48 ans += a[i].p; 49 } 50 } 51 52 printf("%d\n", ans); 53 } 54 }
POJ1456 Supermarket —— 贪心 + 路径压缩优化
标签:size data read cto ide opened standard body free
原文地址:http://www.cnblogs.com/DOLFAMINGO/p/7652868.html