UVALive 6424 Russian Dolls 贪心
2017-03-08 18:41
369 查看
题目链接:这里
题意:每个玩具有占用的空间和内部可容纳的空间。规定每个玩具只能直接嵌套一个玩具,可以间接嵌套,即A套B,B再套C,但是不能A同时套B和C。A能套B的条件是A的内部空间严格大于B的占用空间。第i个玩具有一个单位花费ci,乘以该玩具内部还剩于的空间即为花费。要问的是经过适当的嵌套之后,最小花费是多少。
解法:贪心 显然,每次嵌套会使花费减少。对于每个玩具,如果要将它套进别的玩具里面,在条件允许的情况下肯定是找单位花费大的套,这样花费减小才快。按找单位花费从大到小排序,注意当花费一样的时候,内部体积从大到小。从小到大也可以过,应该是数据不严格?
题意:每个玩具有占用的空间和内部可容纳的空间。规定每个玩具只能直接嵌套一个玩具,可以间接嵌套,即A套B,B再套C,但是不能A同时套B和C。A能套B的条件是A的内部空间严格大于B的占用空间。第i个玩具有一个单位花费ci,乘以该玩具内部还剩于的空间即为花费。要问的是经过适当的嵌套之后,最小花费是多少。
解法:贪心 显然,每次嵌套会使花费减少。对于每个玩具,如果要将它套进别的玩具里面,在条件允许的情况下肯定是找单位花费大的套,这样花费减小才快。按找单位花费从大到小排序,注意当花费一样的时候,内部体积从大到小。从小到大也可以过,应该是数据不严格?
//UVA Live 6424 #include <bits/stdc++.h> using namespace std; const int maxn = 1010; struct node{ int out, in, val; node(){} node(int out, int in, int val) : out(out), in(in), val(val) {} bool operator < (const node &rhs) const{ if(val == rhs.val) return in > rhs.in; return val > rhs.val; } }a[1010]; bool used[maxn]; int main(){ int n; while(scanf("%d", &n) != EOF) { memset(used, 0, sizeof(used)); for(int i = 1; i <= n; i++) scanf("%d%d%d", &a[i].out, &a[i].in, &a[i].val); sort(a + 1, a + n + 1); int ans = 0; for(int i = 1; i <= n; i++){ int nowv = 0; for(int j = 1; j <= n; j++){ if(i != j && a[j].out < a[i].in && !used[j]){ nowv = max(nowv, a[j].out); } } if(nowv){ for(int j = 1; j <= n; j++) if(!used[j] && a[j].out == nowv){ used[j] = 1; break; } } ans = ans + (a[i].in - nowv) * a[i].val; } printf("%d\n", ans); } return 0; }
相关文章推荐
- 文章标题UVALive 6424:Russian Dolls(贪心)
- UVALive 6424 Russian Dolls(贪心)
- UVALive 6424 Russian Dolls 贪心
- UVALive 6424 —— Russian Dolls(贪心)
- Uvalive 6424 - Russian Dolls (贪心)
- UVALive 6424 Russian Dolls
- UVALive 2757 Supermarket(贪心)
- UVaLive 6698 Sightseeing Bus Drivers (水题,贪心)
- UVALive 3835:Highway(贪心 Grade D)
- 例题1.8 彩色立方体 Colored Cubes UVALive - 3401 暴力打表+暴力搜索+贪心
- UVA-10716 Evil Straw Warts Live(贪心+模拟)
- UVALive 3971 Assemble(二分+贪心)
- UVALive - 4636 Cubist Artwork 贪心
- UVALive 7959|Gym 101201H|Paint|DP|贪心
- UVaLive 4094 WonderTeam (贪心)
- UVALive 3610 Log Jumping(贪心)
- UVALive - 6268 Cycling 贪心
- UVALIVE 3971 Assemble 二分+贪心
- uvalive 2322(贪心)
- uvalive4254(贪心+优先队列)