
编程之美
ShaYX1991
从事软件设计开发的热情小白!
展开
-
编程之美 1.8 小飞的电梯调度算法
小飞的电梯调度算法电梯是我们每天都要坐的,上班高峰期是非常拥挤的,大家都不想每层都停,决定选择一层停,剩下的楼层大家自己爬。假设电梯共有N层,坐电梯的人有M人,每个人都有自己的目的层,现在让你设计一个算法,快速算出了电梯停在哪一层,大家爬的楼层最少?解题思路:1.穷举法,遍历每一层大家爬的层数,找出最少的一层。示例代码:#include using namespace std;sta...原创 2019-01-17 20:10:40 · 356 阅读 · 0 评论 -
编程之美 1.7 光影切割问题
光影切割问题原书的题目表述一开始又没看懂,还是直接数学化吧,一张图胜就明白了。 问题:求区域A-B之间,被直线划分成多少区域,前提是不存在三条直线相交的情况。解题思路:1、问题化解仔细观察发现:划分区域 = 直线数 + 交点数+1问题化解为:区域内直线的交点数。2、解法一:求区域内的直线交点3、解法二:求序列的倒序。仔细观察,左边交点为a>b>c,右边交点为c&g...原创 2019-01-16 21:32:32 · 403 阅读 · 0 评论 -
编程之美 1.6 买饮料问题
饮料供货书中开始又是一堆看不懂的前述,感觉说了半天也没说清楚题目,看了解法一才看明白。题目:假设STC共提供n中饮料,用(Si ,Vi,Ci,Hi,Bi )(对应的是饮料的名字,容量,可能的最大数量,满意度,实际购买量)来表示第i种饮料(i=0,1,…,n-1),其中可能的最大数量是指STC存货的上限。基于如上表示:饮料总容量为:总满意度为:那么题目要求就是,在满足条件∑_(i=0...原创 2019-01-15 23:16:24 · 914 阅读 · 0 评论 -
编程之美 1.3 一摞烙饼的排序
一摞烙饼的排序 有大小不一的一摞饼在你的一只手上,现在你需要将饼由大到小翻转,即最大尺寸的饼在底部,最小尺寸的饼在最上面,而且你只能用一只手进行翻转。千言万语不如一张图。 上图是三张饼的翻转,你是否能写出一个程序,对于n块大小不一的烙饼,输出最优化的翻饼过程?解题思路:1、 最笨的办法,一次翻转一个未排序中最大的饼需要两次翻转,那么n个饼就需要2*(n-1)次。当然这是最多的...原创 2019-01-09 23:37:24 · 274 阅读 · 0 评论 -
编程之美 1.5 快速找出故障机器
快速找出故障机器 关心数据挖掘和搜索引擎的程序员都知道,我们需要很多的计算机来存储和处理海量数据。然而,计算机难免出现硬件故障而导致网络联系失败或死机。为了保证搜索引擎的服务质量,我们需要保证每份数据都有多个备份。简单期间,我们假设一个机器仅存储一个标号为ID的记录(假设ID是小于10亿的整数),假设...原创 2019-01-14 22:10:05 · 436 阅读 · 0 评论 -
编程之美 1.11 一排石头的游戏
1.11 一排石头的游戏 N块石头排成一行,每块石头有各自固定的位置,两个玩家依次取石头,每个玩家每次可以去任意一块或者相邻的两块石头,石头在游戏过程中不能移动,最后将剩下的石头一次取光的玩家获胜。这个游戏有必胜的策略吗?假设甲乙两人,甲先拿解题思路:归纳法1、1个石头甲先1号石头,甲获取的...原创 2019-01-24 23:54:45 · 531 阅读 · 0 评论 -
编程之美 1.2 中国象棋将帅问题
中国象棋将帅问题 下过象棋的都知道,双方的“将”和“帅”相隔遥远,并且不能照面。约定A表示“帅”,B表示“将”,二者位置可表示为请写出一个程序,输出A、B所有合法位置。要求在代码中只能使用一个字节存储变量。解析思路:1、 首先想到两个For循环遍历,但要求只用一个字节存储变量,这一思路先不考虑,当然也可以取巧使用位域。2、 观察输出,一共有81种位置组合,假设使用一个变量i来存储第i种...原创 2019-01-08 20:11:40 · 330 阅读 · 0 评论 -
编程之美 1.1 Windows控制CPU占有率
1.1 让CPU占有率听你指挥题目:Windows环境下,写一个程序控制CPU占有率,具体CPU的占有率固定在50%,为一条直线。CPU占有率为一条直线,具体参数可调。CPU占有率呈一条正弦曲线。解题思路:任务监控器下CPU占有率是1秒进行一次采样的。让CPU工作指定时间,休息指定时间就可以控制占有率曲线。其中指定休息时间可以使用Sleep()函数,工作指定时间则需要计算。在此...原创 2019-01-08 00:23:38 · 1433 阅读 · 0 评论 -
编程之美 1.4 买书问题
买书问题        题目:在节假日的时候,一般书店都会做促销,假设一套书共有5册,没册书的定价都是相同的30元,店家为了促销推出了一个方案,具体如下:    &nbsp原创 2019-01-13 01:58:17 · 655 阅读 · 0 评论 -
编程之美 1.10 双线程高效下载
1.10 双线程高效下载 我们经常需要编写程序,从网络上下载数据,然后存储到硬盘上。一个简单的做法就是下载一块数据,写入硬盘,然后再下载,再写入硬盘……不断重复这个过程,直到所有的内容下载完毕并写入硬盘为止。现在给出以下几个前提:1、假设所有数据块的大小都是固定的,可以使用一个全局缓冲区:Bloc...原创 2019-01-22 19:57:26 · 304 阅读 · 0 评论