题目:

http://codevs.cn/problem/2382/

这道题很难;

思路:
设a挂缀承受能力为ca,重量为wa,
b挂缀承受能力为cb,重量为wb,

设x为a,b下面的挂缀总重量;

若a在b上面更好(剩余承受能力更多),即:a.c-b.w-x > b.c-a.w-x;
移项得 a.c+a.w > b.c+b.w;
令d=(承受能力+重量)
所以,我们需要对每种挂缀的d进行排序;

然后,我们发现这仅仅只是一个贪心的方向;
若a.d>b.d,则a未必在b上面,因为a的承受能力可能比b小;

结合题目要求,最终输出最小重量;

有没有DP的感觉?

但是,这显然不是DP,因为数据范围太大,显然是小于O(nlogn)的做法;

所以,还要考无敌的贪心;

维护一个堆,像http://blog.csdn.net/qq_36312502/article/details/78249623那样做就可以了;
注意我们由小及大,所以考虑从下往上组成这个挂缀,这样就可以由大的更新小的了;

题外话:
这题我连WA五遍,然后改了半个小时;
最后发现没有将调试时写的代码去干净,QAQ!

堆的基本操作为O(logn),最多执行n次,排序为O(nlogn),

所以总复杂度为O(nlogn);

总结:
1.这是一类贪心题型,即在当前答案不变的情况下,尽可能使花费变小,让以后的状态更优;

2.细节!细节!去干净调试代码!

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;typedef long long ll;const ll MAXN=400001;
ll cnt=0,sum=0,n;
struct hh {ll c,w,d;}ma[MAXN];bool operator < (hh a,hh b)
{return a.w < b.w;
}
priority_queue<hh>q;bool cmp(hh a,hh b)
{return a.d < b.d;
}void calc()
{for(ll i=1;i<=n;i++){if(ma[i].c>=sum)cnt++,sum+=ma[i].w,q.push(ma[i]);else{if(q.empty()) continue;hh u=q.top();if(u.w > ma[i].w)q.pop(),sum-=u.w,sum+=ma[i].w,q.push(ma[i]);//因为i.d>u.d,而i.w<u.w,所以i.c>u.c,所以不用担心i无法承受u下面挂缀的情况;}}return;
}void solve()
{scanf("%lld",&n);for(ll i=1;i<=n;i++){scanf("%lld%lld",&ma[i].c,&ma[i].w);ma[i].d=ma[i].c+ma[i].w;}sort(ma+1,ma+n+1,cmp);calc();cout<<cnt<<endl<<sum<<endl;
}int main()
{solve();return 0;
}

codevs 2382 [CSTC2007] 挂缀 贪心相关推荐

  1. 【codevs 2382】挂缀

    题目描述 Description "珠缀花蕊,人间几多酸泪"-- 挂缀在很早就被人们作为一种装饰品,垂坠的风韵,华丽摇曳的摆动,展现出一种与众不同的优雅与高贵.而我们的主人公小Q, ...

  2. Codevs 2382 挂缀

    题目描述 Description "珠缀花蕊,人间几多酸泪"-- 挂缀在很早就被人们作为一种装饰品,垂坠的风韵,华丽摇曳的摆动,展现出一种与众不同的优雅与高贵.而我们的主人公小Q, ...

  3. 挂缀codevs2382

    题目描述 Description "珠缀花蕊,人间几多酸泪"-- 挂缀在很早就被人们作为一种装饰品,垂坠的风韵,华丽摇曳的摆动,展现出一种与众不同的优雅与高贵.而我们的主人公小Q, ...

  4. codevs地鼠游戏(贪心)

    1052 地鼠游戏  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能 ...

  5. [BZOJ4319][cerc2008]Suffix reconstruction(贪心)

    === === 这里放传送门 === === 题解 这题发题解的时候纠结了半天挂什么tag..后缀数组?这哪里用后缀数组了..暴力?感觉好敷衍..最后还是决定挂上贪心的tag好了... ATP一开始看 ...

  6. 诗与远方:无题(四十八)

    写这首诗时,想着找到一个女生可以一起看日出,一起牵着手看日落,一起去公园赏花,一起享受着音乐,可以一起去看场演唱会,海枯石烂,地老天荒的爱情,就这样陪着你,但是都没有,只是自己在想,如同做梦一样: 七 ...

  7. Autodesk.ArtCAM.Premium.2017.Suite.build110.Multilang.Win64 1DVD

    Camtek PEPS v5.3.14 MultiLanguage-ISO 2CD(铣削.三维曲面铣削.车削.5轴激光切割.6轴管材切割.线切割软件) Gemvision.com产品: Digital ...

  8. 【贪心】【codevs】1214 线段覆盖

    http://codevs.cn/problem/1214/ 我去这个题...wa的我都没脾气了... 我写while(~scanf("%d", &n))竟然是不对的... ...

  9. codevs 2612 最有分解方案 (贪心)

    /* 数字不重复 将一个正整数分解成若干的整数的和 数字不重复 且数字不相同 保证不重复的话 贪心策略是从2开始分 然后把最后剩下的数均匀分到后面 证明嘛 这里写的可能不是很严谨 对于一个n 如果我们 ...

最新文章

  1. 技术图文:Numpy 一维数组 VS. Pandas Series
  2. Python编程神器Jupyter Notebook使用的28个秘诀(附代码)
  3. 关于龙芯的争吵我都无语了
  4. CentOS7 Apache调优之开启deflate压缩模块
  5. 设计模式(四)--代理模式
  6. nltk book的下载
  7. java 类说明,java基础类型说明
  8. php tostring(),【php】“__toString()”方法使用,php__tostring
  9. ffmpeg基础流程:音频处理
  10. HDU1150Machine Schedule(二分图最大匹配的DFS解法)
  11. react WangEditor 编辑器阿里云OSS上传图片
  12. Java表格Table冻结前几列或者前几行,其余行或列自由滑动。
  13. 打字教程新手篇-指法练习的重要性和注意事项
  14. tibco常用命令记录
  15. 手机连接不上电脑的移动热点ip配置失败
  16. OneNote笔记本分类方法
  17. wamp出现拒绝访问
  18. mysql配置文件生效测试
  19. html导航栏横向展开,横向三级展开的CSS菜单
  20. 联想集团是一家在信息产业内多元化发展的大型企业集团

热门文章

  1. android 系统儿童锁,儿童锁-家长助手
  2. modelsim 安装路径存在空格导致不能正常使用
  3. springboot整合阿里云视频点播服务Vod——实现视频上传、删除、播放
  4. CTF——AWD模式小总结
  5. 咪咕音乐的下载音乐存储路径(MAC)
  6. python将图片转换成动漫,python实现图片转换成素描和漫画格式
  7. ISO3834国际焊接认证简介
  8. 双语电子书epub格式
  9. 1月第4周安全回顾 移动安全受关注 黑客威胁公共设施
  10. 学校计算机机房网络设备,[学校计算机机房的维护]学校计算机机房硬件设备清单...