问题描写叙述:

临最近末。让小东头疼的考试又即将到来了,并且是小东最不喜欢的科目,遗憾的事。
小东得知d天后他必须參加此次考试,小东的父亲对他很严格,要求他马上開始复习
功课。为照应她的情绪,父亲要求她每天该科目的学习时间在iminTime到imaxTime之间
,并计划在考试前检查小东是否按要求做了。

若未能完毕。小东将会受到惩处。

如今小东的父亲要求检查小东的备考情况。遗憾的事。因为专注于备考,小东仅仅是记录
了自己备考的总时间sumTime,并没有记录每天复习所用的时间。也不知道准备情况是否
符合父亲的要求。

他想知道是否可以制作一个满足需求的时间表以应付父亲的检查

输入:
输入中有多组測试数据。每组測试数据的第一行包括两个整数d和sumTime。1<=d<=30,
0<=sumTime<=240,分别表示小东复习的天数及每天用于复习的时间之和。

紧随其后的d行
中。每行包含两个空格分隔的整数,为小东父亲要求小东在这一天用于复习时间的范围
iminTime和imaxTime
0<=iminTime<=imaxTime<=8.

输出:
对每组測试数据。若可以做出一个满足小东父亲要求的时间表,则在单独的一行中输出Yes
。并在随后的一行中给出每天复习花费的时间。

否则输出No。若满足要求的时间表不唯一,
小东希望给父亲留下比較用功的映像,開始时每天复习的时间比較长

例子输入:
1 48
5 7
2 5
0 1
3 5

例子输出:
No
Yes
1 4

问题分析:
利用贪心实现,告知了開始复习的时间比較长,设总共同拥有d天,对于第i天。
则选择满足条件的最大值,也即满足后面d-i天的须要,剩余时间必须在后面d-i天的最小值
与最大值之间,

#include <iostream>using namespace std;int main()
{int Day;int SumTime;while(cin>>Day>>SumTime){int *minTime = new int[Day];int *maxTime = new int[Day];int *dayTime = new int[Day];   //每天复习时间for (int i = 0; i < Day; i++){cin>>minTime[i]>>maxTime[i];}int tmpMin = 0;int tmpMax = 0;for (int i = 0; i < Day; i++){tmpMin += minTime[i];tmpMax += maxTime[i];}bool flag = true;for (int i = 0; i < Day; i++){if (SumTime < tmpMin || SumTime > tmpMax){flag = false;break;}//求得第i天后面所需总时间范围tmpMin -= minTime[i];tmpMax -= maxTime[i];//求得第i天满足条件的时间范围int tmin = SumTime - tmpMax;    int tmax = SumTime - tmpMin;int k;for (k = tmax; k >= tmin; k--){//得到满足条件的最大时间if (k >= minTime[i] && k <= maxTime[i]){dayTime[i] = k;break;}}if (k < tmin){flag = false;break;}else{SumTime -= k;}}if (flag){cout << "Yes" << endl;for (int i = 0; i < Day; i++){cout << dayTime[i] << " " << endl;}}else{cout << "No" << endl;}}return 0;
}

转载于:https://www.cnblogs.com/ljbguanli/p/7323512.html

京东2016笔试题,小东复习相关推荐

  1. 京东2016笔试题【分苹果】-简单的公式法

    看了好多解法,但是就是没有公式法,所以自己写了一个: 题目描述 : 果园里有一堆苹果,一共n头(n大于1小于9)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己的一份苹 ...

  2. Python列表模拟页面调度LRU算法(京东2016笔试题)

    问题描述:一进程刚获得3个主存块的使用权,若该进程访问页面的次序是1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.当采用LRU算法时,发生的缺页次数是多少? 解析:所谓LRU算法 ...

  3. Python两种方法求解登楼梯问题(京东2016笔试题)

    问题:假设一段楼梯共15个台阶,小明一步最多能上3个台阶,那么小明上这段楼梯一共有多少种方法? 解析:从第15个台阶上往回看,有3种方法可以上来(从第14个台阶上一步迈1个台阶上来,从第13个台阶上一 ...

  4. 分苹果(2016京东招聘笔试题)

    笔试题:分苹果(2016京东招聘笔试题) 题目: 果园里有一堆苹果,一共n头(n大于1小于9)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己的一份苹果,接着第二头熊重 ...

  5. 算法题:分苹果(2016京东招聘笔试题)

    笔试题:分苹果(2016京东招聘笔试题) 题目: 果园里有一堆苹果,一共n头(n大于1小于9)熊来分,第一头为小东,它把苹果均分n份后,多出了一个,它扔掉了这一个,拿走了自己的一份苹果,接着第二头熊重 ...

  6. 剑指Offer——京东校招笔试题+知识点总结

    剑指Offer--京东校招笔试题+知识点总结 笔试感言 经过一系列的笔试,发觉自己的基础知识还是比较薄弱的,尤其是数据结构和网络,还有操作系统.工作量还是很大的.做到精确制导的好方法就是在网上刷题,包 ...

  7. 京东笔试题 小东拉票,从其他候选人抢票

    输入有若干组,每组包括两行,每一行为一个正整数,表示候选者的数量,第二行为各候选者的选票数,小东要拉票才能的冠军,第一个是小东的选票数. 话不多说,大家这么捉急,题目自己看,直接上代码了 #inclu ...

  8. 剑指Offer——京东实习笔试题汇总

    文章目录 一.最有价值的的委托信息 二.编程题2 三.选举游戏 四.生日礼物 五.分糖果 一.最有价值的的委托信息 题目的详细信息已经记不住,只能大致描述一下,就是求最有价值的的委托信息. n.s.B ...

  9. 京东校招笔试题及解析

    //仅供学习,请勿转载 一:若k为整形,下述while循环的次数为() k =1000; while(k>1) { Print k; k=k/k; } 解:log2(1024)=10;9< ...

最新文章

  1. Ubuntu双击运行Shell脚本
  2. 曾大战LeCun的谷歌女性科学家,刚刚被Jeff Dean开除了!
  3. bootstrap-内联文本元素-插入文本
  4. uva1504(模拟+暴力)
  5. 归档日志 delete input 和delete all input 区别
  6. 10-礼帽与黑帽操作
  7. 前端学习(3269):js中this在类中的表现
  8. 玩转 VS Code 专栏
  9. Docker部署自己的短链接服务
  10. python 函数 过程_Python开发之【集合、函数和过程】
  11. php自动裁剪黑边,视频画面裁剪怎么将视频四周的黑边去除?
  12. python培训价目表-python培训费用多少?
  13. WPF使用中知识点总结一
  14. linux 卸载pppoe,列“State”不属于表 。
  15. FPGA入门 Xilinx暑期学校学习Day4
  16. 前端实时可视化工具livereload安装和使用
  17. Asio驱动开发学习笔记(3)
  18. Linux配置免密码登录(原理 + 实践)
  19. stm32串口通信以及C语言程序里的内存分配
  20. 计算机最最最底层的 工作原理是怎么运行的

热门文章

  1. NAND FLASH中plane的概念
  2. 2016 408 应用题
  3. 做个小人没人跟,做个君子被人坑,管理者该怎么办?
  4. warning: NULL used in arithmetic [-Wpointer-arith] if(sno!=NULL){
  5. python assert函数解析(最清晰的解释)
  6. 安化云台山风景区邀您畅玩浪漫的中秋之夜
  7. 单例、观察者、代理、备忘录、工厂
  8. Keil.STM32F4xx_芯片包安装
  9. 《如何阅读一本书》读后感-1
  10. Java 函数优雅之道