博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HD-ACM算法专攻系列(23)——Crixalis's Equipment
阅读量:6095 次
发布时间:2019-06-20

本文共 1199 字,大约阅读时间需要 3 分钟。

题目描述:

AC源码:

此次考察贪心算法,解题思路:贪心的原则是使留下的空间最大,优先选择Bi与Ai差值最大的,至于为什么?这里用只有2个设备为例,(A1,B1)与(A2,B2),假设先搬运A1,搬运的那一瞬间,实际将要占用的空间应该为A1+B2,那么为了保证留下的空间最大,则应该有A1+B2<A2+B1成立,才能先搬运A1,即B1-A1>B2-B1。(n个设备可以两两做这样的比较,来达到选择的最优)

#include"iostream"#include"algorithm"using namespace std;struct Equipment {    int A;    int B;};bool cmp(Equipment a, Equipment b){    return (a.B - a.A) > (b.B - b.A);}int main(){    int t, v, n;    bool flag;    Equipment eq[1000];    scanf("%d", &t);    for(int i = 0; i < t; i++)    {            scanf("%d %d", &v, &n);            for(int j = 0; j < n; j++)            {                scanf("%d %d", &eq[j].A, &eq[j].B);            }            sort(eq, eq+n, cmp);            flag = true;            for(int j = 0; j < n; j++)            {                if(eq[j].B <= v)                {                    v -= eq[j].A;                }                else                {                    flag = false;                    break;                }            }            if(flag)            {                printf("Yes\n");            }            else            {                printf("No\n");            }    }    return 0;}

  

转载于:https://www.cnblogs.com/forcheng/p/7634908.html

你可能感兴趣的文章
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
[转]无法安装MVC3,一直卡在vs10-kb2483190
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
web框架-(二)Django基础
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
Excel到R中的日期转换
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
linux文本模式和文本替换功能
查看>>
Windows SFTP 的安装
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>