牛客网-牛牛找工作

2024-06-13 20:32
文章标签 牛牛 牛客 工作

本文主要是介绍牛客网-牛牛找工作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

链接:https://www.nowcoder.com/questionTerminal/46e837a4ea9144f5ad2021658cb54c4d

时间限制:2秒

空间限制:65536K

为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬。牛牛选工作的标准是在难度不超过自身能力值的情况下, 牛牛选择报酬最高的工作。在牛牛选定了自己的工作后,牛牛的小伙伴们来找牛牛帮忙选工作,牛牛依然使用自己的标 准来帮助小伙伴们。牛牛的小伙伴太多了,于是他只好把这个任务交给了你。 输入描述: 每个输入包含一个测试用例。 每个测试用例的第一行包含两个正整数,分别表示工作的数量N(N<=100000)和小伙伴的数量M(M<=100000)。 接下来的N行每行包含两个正整数,分别表示该项工作的难度Di(Di<=1000000000)和报酬Pi(Pi<=1000000000)。 接下来的一行包含M个正整数,分别表示M个小伙伴的能力值Ai(Ai<=1000000000)。 保证不存在两项工作的报酬相同。 输出描述: 对于每个小伙伴,在单独的一行输出一个正整数表示他能得到的最高报酬。一个工作可以被多个人选择。

示例1输入
3 3
1 100
10 1000
1000000000 1001
9 10 1000000000输出
100
1000
1001
超时算法:
#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
#include<iostream>
#include<algorithm>using namespace std;struct job {int Di;//难度int Pi;//报酬
} Job[100001];int Ai;bool cmp(struct job a, struct job b) {return a.Pi > b.Pi; //报酬
}int main() {int n, m;while (scanf("%d%d", &n, &m) != EOF) {for (int i = 0; i < n; i++) { //n为工作数量cin >> Job[i].Di;cin >> Job[i].Pi;}sort(Job, Job + n, cmp);for (int i = 0; i < m; i++) {//m为小伙伴数量   /*注意:这里超时了,因为10e5 * 10e5 超过2秒的时间。  1秒约10e8*/cin >> Ai;for (int j = 0; j < n; j++) {//n为工作数量if (Ai >= Job[j].Di) {cout << Job[j].Pi<<endl ;break;}}}}return 0;
}

正确解法:

#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
#include<iostream>
#include<algorithm>using namespace std;struct job {    //工作int Di;//难度int Pi;//报酬
} Job[100001];struct ai {   //人int i;//序号int power;//能力int money=0;//报酬
} Ai[100001];bool cmp(struct job a, struct job b) {return a.Di < b.Di; //难度
}bool cmp2(struct ai a, struct ai b) {return a.power < b.power; //能力
}bool cmp3(struct ai a, struct ai b) {return a.i < b.i; //序号
}int main() {int n, m;while (scanf("%d%d", &n, &m) != EOF) {for (int i = 0; i < n; i++) {  //n为工作数量cin >> Job[i].Di;cin >> Job[i].Pi;}sort(Job, Job + n, cmp);for (int i = 0; i < m; i++) {  //m为小伙伴数量Ai[i].i=i;cin >> Ai[i].power;}sort(Ai, Ai + m, cmp2);//多思考,//人的能力 10  30 45 70//工作需要的能力  12 13 14 15 37 59// 30人的能力 大于 工作的能力12 13 14 15 所以选其中最大的赋值给30能力的人int j=0;int maxMoney=0;for(int i=0;i<m;i++){while(j<n){if(Job[j].Di>Ai[i].power){ //工作的能力 大于 人的能力 ,退出break;}maxMoney=max(maxMoney,Job[j].Pi);j++;}Ai[i].money=maxMoney;}sort(Ai, Ai + m, cmp3);for(int i=0;i<m;i++){cout<<Ai[i].money<<endl;}}return 0;}



这篇关于牛客网-牛牛找工作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1058345

相关文章

找完工作该补充的东西

首先: 锻炼身体,包括乒乓球,羽毛球,都必须练习,学习,锻炼身体等是一个很重要的与人交际沟通的方式; 打牌,娱乐:会玩是一个人很重要的交际沟通的法宝; 摄影:这个是一个兴趣爱好,也是提高自己的审美,生活品质,当然也是与人沟通的重要途径; 做饭:这个的话就是对自己,对朋友非常有益的一件事情;

工作流Activiti初体验—流程撤回【二】

已经玩工作流了,打算还是研究一下撤回的功能。但是流程图里面并不带撤回的组件,所以需要自己动态改造一下,还是延续上一个流程继续试验撤回功能。《工作流Activiti初体验【一】》 完整流程图 我们研究一下分发任务撤回到发起任务,其他环节的撤回类似 撤回的原理大概如下: 将分发任务后面的方向清空,把发起任务拼接到原来的判断网关,然后结束分发任务,这样流程就到发起任务了 此时的流程如上图,

工作流Activiti初体验【一】

在这里记录一下我的Activiti历程:(以下示例不涉及真实业务,所有逻辑均建立在学习的基础上) bpmn图 发起任务我设置了一个权限组user1,只要是这个权限的用户都可以发起任务 分发任务我设置了一个用户组,用户组中每个用户都可以处理这步流程,只要有一个人处理这步任务,分发的流程就算结束了 分发任务这一环节还有个判断,允许任务下发和不允许任务下发 任务分发完成则来到子流程,每个被分

HashMap 的工作原理及其在 Java 中的应用?

在Java的数据结构中,HashMap是最常见且最重要的一个数据结构之一。HashMap是Java集合框架中的一部分,它存储的是键值对(Key-value)映射,也就是说,你可以通过键(Key)找到对应的值(Value)。让我们来详细地看一下HashMap的工作原理。 HashMap的工作原理 HashMap内部有一个数组,数组中的每个元素又是一个链表。当我们将一个键值对存入HashM

Ajax及其工作原理

Ajax及其工作原理 AJAX 是一种与服务器交换数据无需刷新网页的技术,最早由Google公司在谷歌地图里使用,并迅速风靡。 AJAX是不能跨域的,如需跨域,可以使用document.domain='a.com';或者使用服务器代理,代理XMLHttpRequest文件 AJAX是基于现有的Internet标准,并且联合使用它们: XMLHttpRequest 对象 (异步的与服

TCP 可靠传输的工作原理

转载地址:https://my.oschina.net/xinxingegeya/blog/485233 感谢原作者 TCP 可靠传输的工作原理 ARQ(Automatic Repeat-reQuest)(自动重传请求) 停止等待ARQ协议 连续ARQ协议   停止等待ARQ协议 全双工通信的双发既是发送方也是接收方。下面为了讨论问题的方便,我们仅考虑A发送数据而B接受数据

某大厂程序员吐槽:离职交接时,新人被工作量吓退,领导却污蔑我故意劝退新人,我怒晒工作短信反击证明,新人看了后也决定走人了!

一位知名大公司的程序员分享了他离职时的遭遇:在交接工作时,新进的同事因工作量过大而感到压力,但出乎意料的是,他们的领导却指责我故意吓唬新人。为了证明自己的清白,我晒出了工作短信作为反击,结果连新人也决定离开。 在任何组织里,团队文化的优劣都是决定工作效率和质量的关键。一个和谐相处的团队不仅能提升工作效率,还能使工作氛围变得轻松愉快。 然而,一旦团队内部出现权力斗争或领导偏爱小团体、

转:cygwin简单应用及Nutch之Crawler工作流程

cygwin简单应用: cygwin home 目录: ls /                       -- 根目录 ls /cygdrive               -- 查看本地操作系统的盘符,如c盘、d盘 pwd                       -- 当前位置路径 /home/zf

.net 面试题总结(工作经验2年半)

一、Ajax调用的时候,get、post有什么区别? 答:get和post都是向服务器发送一种请求,只是发送机制不同     1 GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。     2.首先是”GET方式提交的数据最多只能是1024字节”,Post传输的数据量大,可以达到2M。     3.get方式请求数据会被浏览器缓存起来,因此其

我的2019年工作总结及对未来1年的计划和期许

最近一直在忙,不过今天手上的2个项目目前都在修改bug中了。等修改好了,估计明天又同时进行复测了。 刚刚公司群里发布了2019年度工作总结和考核评优工作的通知,和去年一样,每个人需要提交一份个人总结PPT。然后我看了我去年的写的总结和期望,不足和成就。有了些感触,也忙里偷闲整理了半天今年的工作内容。这里具体的项目名称就不透露了。 整体来说: 1、独立测试3个项目/产品的测试工作。 2、客户