博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯 算法提高 盾神与积木游戏
阅读量:4139 次
发布时间:2019-05-25

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

算法提高 盾神与积木游戏  
时间限制:1.0s   内存限制:256.0MB
    
问题描述
  最近的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 
#include
#include
#include
#include
using namespace std;const int N=10000+10;struct Node{ int have,need;}node[N];bool cmp(Node a,Node b){ return a.need-a.have
>t; while(t--){ bool ok=0; cin>>n; for(int i=0;i
>node[i].have>>node[i].need; if(node[i].have>=node[i].need) ok=1; } if(ok==0) { cout<<"NO"<
=node[i].need) now+=node[i].have; else { ok=0; break; } } if(ok) cout<<"YES"<

转载地址:http://sbmvi.baihongyu.com/

你可能感兴趣的文章
今天第一次面试别人, 大概聊了近30分钟
查看>>
我经历的那些骗局(要承认, 骗子智商比我们高)
查看>>
C语言一个文件中的函数能直接调用另外一个文件中的静态函数吗? (某公司校园招聘面试试题)
查看>>
有“空洞”的文件的C代码实现
查看>>
简单详解:x^6+4x^4+2x^3+x+1 至少要需要多少次乘法? (某公司实习生招聘笔试试题)
查看>>
int a1=x+y-z; int a2=x-z+y; a1和a2的值一定相等吗? (某公司实习生招聘笔试试题)
查看>>
聊聊这个与代码优化有关的选择题 (某公司实习生招聘笔试试题)
查看>>
Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile
查看>>
再谈IPC之共享内存 (某公司实习生招聘笔试试题)
查看>>
又见组合数, 好亲切! (某公司实习生招聘笔试试题)
查看>>
数据库表删除之drop table xxx (某公司实习生招聘笔试试题)
查看>>
任务调度时间 (某公司实习生招聘笔试试题)
查看>>
国庆期间遇到两个诈骗团伙
查看>>
BCB如何加载字符串资源文件(语言资源文件)?
查看>>
int fun(){return 1;}在C和C++中不同
查看>>
关于void a;和void *a;
查看>>
C/C++是否存在全局的或者静态的register变量?
查看>>
如何获取float变量在内存中的二进制数据?
查看>>
吃货有内涵,历代Android版本代号回顾
查看>>
完全二叉树叶子节点数n0和总结点数N的关系 (某公司校园招聘笔试试题)
查看>>