关闭

蓝桥杯 ADV-194算法提高 盾神与积木游戏(贪心)

标签: 蓝桥杯
576人阅读 评论(0) 收藏 举报
分类:
问题描述
  最近的m天盾神都去幼儿园陪小朋友们玩去了~
  每个小朋友都拿到了一些积木,他们各自需要不同数量的积木来拼一些他们想要的东西。但是有的小朋友拿得多,有的小朋友拿得少,有些小朋友需要拿到其他小朋友的积木才能完成他的大作。如果某个小朋友完成了他的作品,那么他就会把自己的作品推倒,而无私地把他的所有积木都奉献出来;但是,如果他还没有完成自己的作品,他是不会把积木让出去的哟~
  盾神看到这么和谐的小朋友们感到非常开心,于是想帮助他们所有人都完成他们各自的作品。盾神现在在想,这个理想有没有可能实现呢?于是把这个问题交给了他最信赖的你。
输入格式
  第一行为一个数m。
  接下来有m组数据。每一组的第一行为n,表示这天有n个小朋友。接下来的n行每行两个数,分别表示他现在拥有的积木数和他一共需要的积木数。
输出格式
  输出m行,如果第i天能顺利完成所有作品,输出YES,否则输出NO。
样例输入
2
2
2 2
1 3
3
1 5
3 3
0 4
样例输出
YES
NO
数据规模和约定
  1<=n<=10000,1<=m<=10。
分析:首先将已经能够完成作品的积木个数释放,然后优先分配给需要积木最少的人
#include <iostream>
#include <algorithm>
using namespace std;
struct node {
    int t1;
    int t2;
    int res;
};

int cmp1(node p, node q) {
    return p.res > q.res;
}

int main() {
    int m, n;
    cin >> m;
    for(int i = 0; i < m; i++) {
        cin >> n;
        int t = 0;
        int flag = 0;
        node *a = new node[n];
        for(int j = 0; j < n; j++) {
            cin >> a[j].t1 >> a[j].t2;
            a[j].res = a[j].t1 - a[j].t2;
            if(a[j].res >= 0) {
                a[j].res = -99999999;
                t += a[j].t1;
            }
        }
        sort(a, a+n, cmp1);
        int k = 0;
        while(a[k].res != -99999999) {
            t += a[k].res;
            if(t < 0) {
                cout << "NO" << endl;
                flag = 1;
                break;
            }
            t += a[k].t2;
            k++;
        }
        if(flag == 0)
            cout << "YES" << endl;
    }
    return 0;
}

1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

滑动积木块游戏设计 ——A*算法的应用

滑动积木块游戏设计:A*算法的应用
  • wp1603710463
  • wp1603710463
  • 2015-12-23 19:40
  • 2569

蓝桥杯-第七届省赛javaA组-搭积木

搭积木 小明最近喜欢搭数字积木, 一共有10块积木,每个积木上有一个数字,0~9。 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。 最后搭成4层的金字塔形,必须用完...
  • obession
  • obession
  • 2017-02-06 23:10
  • 2323

用虚幻4开发搭积木的VR游戏

用虚幻4开发搭积木的VR游戏 2016 年 9 月 23-24 日,由 CSDN 和创新工场联合主办的“MDCC 2016 移动开发者大会• 中国...
  • bestlove12345
  • bestlove12345
  • 2016-08-10 08:37
  • 1459

蓝桥杯 算法提高 盾神与积木游戏

算法提高 盾神与积木游戏   时间限制:1.0s   内存限制:256.0MB      问题描述   最近的m天盾神都去幼儿园陪小朋友们玩去了~   每个小朋友都拿...
  • Sterben_Da
  • Sterben_Da
  • 2016-01-28 11:07
  • 1004

蓝桥杯 ADV-193算法提高 盾神与条状项链

问题描述   有一天,盾神捡到了好多好多五颜六色的珠子!他心想这些珠子这么漂亮,可以做成一条项链然后送给他心仪的女生~于是他用其中一些珠子做成了长度为n的项链。当他准备把项链首尾相接的时候,土方进来...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:16
  • 529

蓝桥杯ADV-17算法提高 统计单词数

问题描述   统计输入英文文章段落中不同单词(单词有大小写之分,  但统计时忽略大小写)各自出现的次数。 输入段落中所含单词的总数不超过100,最长单词的长度不超过20个字母. 输入格式   一...
  • liuchuo
  • liuchuo
  • 2016-07-22 00:19
  • 618

蓝桥杯 ADV-202算法提高 最长公共子序列(动态规划)

问题描述   给定两个字符串,寻找这两个字串之间的最长公共子序列。 输入格式   输入两行,分别包含一个字符串,仅含有小写字母。 输出格式   最长公共子序列的长度。 样例输入 abcd...
  • liuchuo
  • liuchuo
  • 2016-07-21 23:50
  • 382

蓝桥杯 ADV_193 算法提高 新建Microsoft Word文档 (java)

算法提高 新建Microsoft Word文档   时间限制:1.0s   内存限制:256.0MB      问题描述   L正在出题,新建了一个word文档,想不好取什么名字,身旁一人...
  • xiaodingqq
  • xiaodingqq
  • 2017-12-18 21:00
  • 56

蓝桥杯练习系统试题集 算法提高 ADV-147 学霸的迷宫

问题描述   学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,...
  • EventQueue
  • EventQueue
  • 2016-03-15 09:33
  • 1840

蓝桥杯 ADV-166算法提高 聪明的美食家

问题描述   如果有人认为吃东西只需要嘴巴,那就错了。   都知道舌头有这么一个特性,“由简入奢易,由奢如简难”(据好事者考究,此规律也适合许多其他情况)。具体而言,如果是甜食,当你吃的食物不如前...
  • liuchuo
  • liuchuo
  • 2016-07-21 23:56
  • 574
    个人资料
    • 访问:536501次
    • 积分:15641
    • 等级:
    • 排名:第811名
    • 原创:1051篇
    • 转载:0篇
    • 译文:0篇
    • 评论:170条
    打滚求打赏(๑ ̄ ̫  ̄๑)
    此处弱弱求打赏~~万一有好心人呢~~
    谨以此献给正在努力刷题的你^_^
    文章分类