华为 oj java题库_华为OJ题目:刷题
题目描述:
新入职华为的小伙伴们都有在oj上面刷题的任务,共需要刷100道初级题,45道中级题,5道高级题,其中,做出来的高级题如果超标可以当初级或者中级题,做出来的中级题如果超标可以当初级题。每天,出题的大哥会给大家出Xi道题,这Xi道题属于同一个难度级别,小伙伴们要么用一天时间把这些题全做出来,要么就不做。现在,给你每天出题大哥出的题数以及难度,请问,小伙伴们最少要挑选其中几天去做题,才能把这150道题的任务完成呢?
输入示例:
5
100 70 5 5 55
1 2 2 2 3
输出:
2
表示两天就可以完成。
自己的解决思路:
这个题目的难点在于高难度的题目可以当做低难度的题目。
现将所有的题目按难度进行分类,并对每一类进行从大到小的排序。
首先,先做难度3的题目,如果难度三的题目搞定了 ,再将剩下的难度二和难度三的题目进行排序。在此基础上,再做难度二的。做完难度二以后,再将剩下的所有题目进行排序。在此基础上再做难度一的题目。
实现代码:
#include
#include
#include
#include
#include
using namespace std;
#define LOWLEVEL 100
#define MIDLEVEL 45
#define UPLEVEL 5
bool MoreThan(int a,int b)
{
return a > b;
}
int theMax(int a,int b,int c)
{
return (a>b?(a>c?a:c):(b>c?b:c));
}
void display(char* str,vector &src)
{
int i,n;
n = src.size();
cout<
for (i = 0; i < n; i++)
{
cout<
}
cout<
}
void OJDoWorks(int days,vector &numbers,vector &nandu)
{
int i,n;
int dayOver,flagu,flagm,flagl;
int lowsum,midsum,upsum;
vector lowv, midv, upv,sortv,sortlv;
n = numbers.size();
flagl = flagm = flagu = -1;
lowsum = midsum = upsum = dayOver = 0;
//将题目进行分类
for (i = 0; i < n; i++)
{
if (nandu[i] == 1)
{
lowv.push_back(numbers[i]);
}
else if (nandu[i] == 2)
{
midv.push_back(numbers[i]);
}
else
{
upv.push_back(numbers[i]);
}
}
//按大小进行排序
sort(upv.begin(),upv.end(),MoreThan);
sort(midv.begin(),midv.end(),MoreThan);
sort(lowv.begin(),lowv.end(),MoreThan);
display("up",upv);
display("mid",midv);
display("low",lowv);
n = theMax(upv.size(),midv.size(),lowv.size());
//先把高级的做满
for(i = 0; i < upv.size();i++)
{
dayOver++;
upsum += upv[i];
if (upsum >= UPLEVEL)
{
flagu = i;
break;
}
}
//高级题目不够
if (flagu < 0)
{
return;
}
midsum = upsum - UPLEVEL;
//将剩下的高级和中级的题目进行排序
for (i = flagu+1; i< upv.size(); i++)
{
sortv.push_back(upv[i]);
}
for (i = 0; i < midv.size(); i++)
{
sortv.push_back(midv[i]);
}
sort(sortv.begin(),sortv.end(),MoreThan);
display("sort mid:",sortv);
//再把中级的做满
n = sortv.size();
for (i = 0; i < n; i++)
{
if (midsum >= MIDLEVEL)
{
flagm = i;
break;
}
dayOver++;
midsum += sortv[i];
}
//中级题目数量不够
if (flagm < 0)
{
return;
}
lowsum = midsum - MIDLEVEL;
//再做低级的题目
for ( i = flagm; i < n; i++)
{
sortlv.push_back(sortv[i]);
}
for (i = 0; i < lowv.size(); i++)
{
sortlv.push_back(lowv[i]);
}
sort(sortlv.begin(),sortlv.end(),MoreThan);
display("sort low",sortlv);
n = sortlv.size();
for (i = 0; i < n; i++)
{
if (lowsum >= LOWLEVEL)
{
flagl = i;
break;
}
dayOver++;
lowsum += sortlv[i];
}
if ((upsum >= UPLEVEL) && (midsum >= MIDLEVEL) && (lowsum >= LOWLEVEL))
{
cout<
}
else
{
return;
}
}
int main()
{
//fstream in("data.txt");
int n,i,value;
vector numbers,nandu;
cin>>n;
for (i = 0; i < n; i++)
{
cin>>value;
numbers.push_back(value);
}
for (i = 0; i < n; i++)
{
cin>>value;
nandu.push_back(value);
}
OJDoWorks(n,numbers,nandu);
cout<
return 0;
}
华为 oj java题库_华为OJ题目:刷题相关推荐
- 牛客网数据开发题库_牛客网刷题笔记--数据库
C.SC(S#,C#,G)答案:A. 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖. 关系模式S 中,(S#,Sd)→Dc,Sd →Dc,Dc不完全依赖于Sd且Sd为非主属性.故本题答案为 ...
- 改善好UI交互,创建题库,导入试题,刷题体验感
UI交互调整 土著刷题微信小程序v1.1在开发方向上做了调整,完全成为一个提供围绕刷题相关功能的工具,在UI交互方面虽然参考了市面上刷题软件的UI交互,但在自己使用期间仍觉得有些别扭,所以在 ...
- 华为android机考题,华为无线题库_华为射频机考,华为无线射频题库
该文档为华为认证的无线题库,题库知识覆盖非常的全面,适合拿来练练手 QUESTION 5 以下哪些标准是ⅥiF|联盟制定的()? A.80211a/b/gn B. WPA C. WPA2 D.802. ...
- 华为云NP考试题库_华为认证网络工程师怎么考
如果现在打算学习华为认证的话,那么下一步该怎么开始呢?华为认证网络工程师的考试该怎么样考呢?有不少朋友长期关注网络工程师成长日记作者小编,看了大量小编关于华为认证的介绍之后,有些朋友时间充裕也打算进行 ...
- 华为云NP考试题库_华为云服务考试 华为云hcip认证试题
怎样找到华为手机云服务? 在华为手机云服务的手机设置菜单中,以华为G9手机为例.搜索方法如下:1.打开手机的设置页面,在设置页面的顶部有一个搜索框. 2.在搜索框中,输入云服务以开始搜索.搜索结束后, ...
- 无忧考吧java的题库准吗,无忧考吧题库_无忧考吧从业题库难度和真正考试难度一样吗_淘题吧...
『壹』 无忧考吧题库有效期365天什么意思 就是自从你开通会员开始算起,一年365天享有会员权限 『贰』 会计从业资格考试题库哪家的比较好,中华会计,东奥,还是无忧考吧的... 要我说吧,无所谓,两家 ...
- python编程基础题库_大学moocPython编程基础题库及答案
参考答案如下 大学间接赞扬的方式可能受到意想不到的效果.() 编程郑玄对"一人贪戾"的"戾"的解释为(),形容在欲望的追寻中出现的人与人的矛盾状态. 郑谷有&l ...
- 计算机二级access选择题题库_资料最新计算机二级题库,选择题资料汇总+全真试题分享(Office)...
学习资料 最近找到了一份最新版的计算机二级Office题库和选择题资料,如果你正好需要,不用客气可以直接拿走了,记得持续关注ZELINK科技(泽霖科技)公众号就行了,正如俗话所说"点关注不迷 ...
- 小米答题题库_拼多多果园答题题库74(每日更新)
135编辑器 拼多多答题题库七十四 每周我们都会做一个总和的题库: 希望大家持续关注! 您的关注就是我们的动力! "成语之乡"指的是我国哪座城市? 1.河北邯郸 2.安徽蚌埠 答 ...
最新文章
- Oracle数据库之SQL基础(一)
- 十条技巧 更聪明地使用Google搜索
- 检测机安装mysql_centos安装mysql的正确方法
- Servlet→对象监听器、事件监听器、Session钝化活化、@WebListener标注、过滤器概念原理生命周期、过滤器链、@WebFilter标注、定时器Timer、cancel()、purge
- PHP学习笔记--array_map函数
- eclipse.ini
- Eps总结(2)——Eps常用命令与快捷键
- SciPy库主要功能
- 图像的特征提取——HOG特征、Harr特征、LBP特征
- android ionic框架,移动App开发框架—Ionic
- 中学计算机课小课题,中学信息技术课题题目
- 水平居中和transform: translateY(-50%) 实现元素垂直居中效果
- Java开发微信小程序(三)用小程序给用户推送服务消息
- snapchat为什么_什么是Snapchat?
- 诸葛新增快应用SDK,满足客户更多数据采集方案支持!
- 体感互动LED显示屏系统|体感互动屏幕|体感互动大屏软件
- ASP.NET.3.5揭秘
- CCD与CMOS摄像头哪个好
- 拿到北京户口了。。。
- [笔记]Unity粒子特效2:创建一个粒子特效