UVALive 6424 —— Russian Dolls(贪心)
2014-09-05 19:26
489 查看
题目:Russian Dolls
题意:每个玩具有占用的空间和内部可容纳的空间。规定每个玩具只能直接嵌套一个玩具,可以间接嵌套,即A套B,B再套C,但是不能A同时套B和C。A能套B的条件是A的内部空间严格大于B的占用空间。第i个玩具有一个单位花费ci,乘以该玩具内部还剩于的空间即为花费。
现在要问的是经过适当的嵌套之后,最小花费是多少。
囧。。。堂堂一个贪心即可的问题,我居然分析错复杂度跑去写费用流。。。吃了N发TLE才醒悟。。。
在什么嵌套都没有的情况下,总花费是每个玩具的单位花费*其内部空间 的总和。
显然,每次嵌套会使花费减少。
对于每个玩具,如果要将它套进别的玩具里面,在条件允许的情况下肯定是找单位花费大的套,这样花费减小才快。所以反过来每个玩具也是尽可能找体积大的来套。
所以先按找单位花费从大到小排序,然后开始用玩具来套,记录好哪些玩具已经被嵌套在别人里面就行了。
题意:每个玩具有占用的空间和内部可容纳的空间。规定每个玩具只能直接嵌套一个玩具,可以间接嵌套,即A套B,B再套C,但是不能A同时套B和C。A能套B的条件是A的内部空间严格大于B的占用空间。第i个玩具有一个单位花费ci,乘以该玩具内部还剩于的空间即为花费。
现在要问的是经过适当的嵌套之后,最小花费是多少。
囧。。。堂堂一个贪心即可的问题,我居然分析错复杂度跑去写费用流。。。吃了N发TLE才醒悟。。。
在什么嵌套都没有的情况下,总花费是每个玩具的单位花费*其内部空间 的总和。
显然,每次嵌套会使花费减少。
对于每个玩具,如果要将它套进别的玩具里面,在条件允许的情况下肯定是找单位花费大的套,这样花费减小才快。所以反过来每个玩具也是尽可能找体积大的来套。
所以先按找单位花费从大到小排序,然后开始用玩具来套,记录好哪些玩具已经被嵌套在别人里面就行了。
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct Doll{ int out, in, cost; bool operator < (const Doll &A)const{ return cost > A.cost; } }d[1010]; int n, sum; bool used[1010]; int main(){ while(~scanf("%d", &n)){ sum = 0; for(int i=0; i<n; i++){ scanf("%d %d %d", &d[i].out, &d[i].in, &d[i].cost); sum += d[i].cost * d[i].in; used[i] = 0; } sort(d, d+n); for(int i=0; i<n; i++){ int x = -1; for(int j=0; j<n; j++){ if(!used[j] && d[j].out<d[i].in){ if(x==-1 || d[j].out>d[x].out) x=j; } } if(~x){ sum -= d[x].out * d[i].cost; used[x] = 1; } } printf("%d\n", sum); } 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 4225 Prime Bases 贪心
- UVALive 4867 Maximum Square 贪心
- uvalive 2949(二分+贪心)
- UVALive 4725 Airport 贪心 二分 模拟
- UVaLive 7454 Parentheses (水题,贪心)
- UVALive 3530 Martian Mining(贪心,dp)
- UVA 1611&& UVALive 6588 Crane (贪心思路)
- UVALive 3177 长城守卫(贪心+二分)
- UVALive - 3507 Keep the Customer Satisfied 贪心
- Bin Packing - UVALive 3503 贪心
- UVALive 7147 World Cup(贪心+分类讨论)
- UVALive 6901 String Transformation(贪心)
- UVALive 7146 Defeat the Enemy(贪心+STL)(2014 Asia Shanghai Regional Contest)
- UVALive 4731 dp+贪心