救生员问题是这样的:
1.有一个游泳池,管理人员每天需要安排一些救生员保证游泳者的安全;
2.为简单起见,一天中游泳池开放的时间从t=0到t=1000;
3.每个救生员在这一天中有一个工作时间段,比如14~37,表示他从t=14工作到t=37,一共工作23个单位时间;
4.救生员的工作时间段可能会有重叠;
5.管理人员因故要解雇一位救生员,问:解雇一人之后,剩下的救生员所能覆盖的工作时间最长是多少?所谓覆盖就是指在该时间内至少有一个救生员在工作。
这是一个难度中等的USACO(美国计算机奥赛)真题。你可以试试。本节课主要帮助大家学习用分治法解决问题,并顺带学习一些C++的基本语法知识。
课程介绍
课程目录
往期学员作品
课程介绍
课程目录
往期学员作品
讲师介绍
方林
博士
计算机软件博士,有32年软件开发和教学经验,《深度学习程序设计实战》作者。方老师擅长用通俗易懂的实例,结合代码,讲解复杂难懂的数学和计算机理论知识。他的课程常融会贯通计算机各学科领域,如博弈、编译、递归、多线程、贝叶斯网络等等。许多学生认为方博改变了他们对计算机科学和数学的看法,影响了他们一生。