贪心算法解决会场安排问题多处最优服务次序问题(含源代码)

西 安年月日…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si

由于输入的活动以其完成时间的非减序排列,所以算法greedySelector每次总是选择具有最早完成时间的相容活动加入集合A中。直观上,按这种方法选择相容活动为未安排活动留下尽可能多的时间。也就是说,该算法的贪心选择的意义是使剩余的可安排时间段极大化,以便安排尽可能多的相容活动。

算法greedySelector的效率极高。当输入的活动已按结束时间的非减序排列,算法只需O(n)的时间安排n个活动,使最多的活动能相容地使用公共资源。如果所给出的活动未按非减序排列,可以用O(nlogn)的时间重排。

1.会场安排问题源代码

#include

#include

#include

using namespace std;

struct point

{

int t;

bool f;

};

bool cmp(point x,point y)

{

return x.t

}

int greedy(vector x)

{

int max=0,cur=0,n=x.size();

sort(x.begin(),x.end(),cmp);

for(int i=0;i

{

if(x[i].f)

cur++;

else

cur--;

if(cur>max)

max=cur;

}

return max;

}

int main()

{

vector x;

int n,i;

point temp;

while(cin>>n,n)

{

for(i=0;i

{

temp.f=true;

cin>>temp.t;

x.push_back(temp);

temp.f=false;

cin>>temp.t;

x.push_back(temp);

}

cout<

x.clear();

}

return 0;

}

2. 多处最优服务次序问题源代码:

#include

#include

main()

{

int **window,*timewindow,*array,num,serve,i,j,k,temp;

double min;

printf("请输入等待服务人数\n");

scanf("%d",&num);

printf("请输入服务窗口数\n");

scanf("%d",&serve);

array = (int *)malloc((num + 1) * sizeof(int));

timewindow = (int *)malloc((serve + 1) * sizeof(int));

window = (int **)malloc((serve + 1) * sizeof(int *));

for(i = 0; i <= serve;i++)

window[i] = (int *)malloc((num + 1) * sizeof(int *));

printf("请依次输入服务等待时间\n");

for(i = 1; i <= num;i++)

scanf("%d",&array[i]);

for(i = 0; i <= serve;i++)

{

timewindow[i] = 0;

for(j = 0; j <= num; j++)

windo

C语言会场安排问题贪心算法,贪心算法解决会场安排问题多处最优服务次序问题(含源代码).doc...相关推荐

  1. 贪心算法--多处最优服务次序问题

    问题描述:        设有n 个顾客同时等待一项服务.每个顾客需要服务一定时间.共有s 处可以        提供此项服务.应如何安排n 个顾客的服务次序才能使平均等待时间达到最小?平均等待时   ...

  2. 算法学习系列(贪心算法)—多处最优服务次序问题

    问题描述: 设有n(1≤n≤100)个顾客同时等待一项服务.顾客i需要的服务时间为ti,1≤i≤n,共有s处提供此服务.应如何安排n个顾客的服务次序才能使平均等待时间达到最小.平均等待时间是n个顾客的 ...

  3. 最优服务次序问题-贪心算法

    1.最优服务次序问题 (1)问题描述: 设有n 个顾客同时等待一项服务.顾客i需要的服务时间为ti, 1<=i <= n .应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待 ...

  4. 最优服务次序问题算法c语言,《算法分析与设计》最优服务次序问题的答案-20210414020541.docx-原创力文档...

    最优服务次序问题 设有n个顾客同时等待同一项服务.顾客i需要的服务时间为ti,1<=iv=n 应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间 是n个顾客等待服务时间的总和除 ...

  5. 【算法设计与分析】 最优服务次序问题

    算法课程展示 最优服务次序问题 简介: 青岛某高校,信安专业,算法课程第三次课堂展示 问题描述 设有n个顾客同时等待一项服务,顾客i需要服务的时间为t[i](1<= i <=n).应如何安 ...

  6. 学生考勤系统设计c语言源程序文件的后缀是,C++学生考勤系统(含源代码).doc

    C++学生考勤系统(含源代码).doc /C语言程序设计课程设计报告书题目 班级 学号 姓名 指导教师 周期 以下由验收老师填写成绩 年 月 日一.课程设计的目的与要求 (一)课程设计目的与任务C作为 ...

  7. 贪心算法解决活动安排-Python实现(排序+贪心选择)

    贪心算法解决活动安排 问题 问题概述 分析问题 解决问题 编程 编程流程以及数据类型选择 发现问题以及解决 最终实现 总结 程序缺陷以及完善 解题心路历程 问题 问题概述 设有n个活动的集合E={1, ...

  8. 趣学算法--贪心算法

    目录 一.贪心算法的性质 1.1贪心选择 1.2最优子结 二.贪心算法使用策略 2.1贪心策略 2.2局部最优解 2.3全局最优解 三.贪心算法的应用 3.1最简单的最优装载问题 3.2简单的会议安排 ...

  9. [sicily]【1001】 会议安排(田忌赛马类贪心)

    题干: N个会议要同时举行,参会人数分别为A[0], A[1], ...,A[N-1]. 现有M个会议室,会议室可容纳人数分别为B[0], B[1], ...,B[M-1]. 当A[i]<=B[ ...

最新文章

  1. LightOJ1245-Harmonic Number (II) 【数学调和级数】
  2. java rtmp_搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)...
  3. 因深度学习成就,香港大学罗平入选《麻省理工科技评论》亚太区「35 岁以下创新者」榜单
  4. 智能媒体管理服务控制台功能体验
  5. bzoj2527: [Poi2011]Meteors
  6. ActiveReports 报表应用教程 (2)---清单类报表
  7. dotnet中的counters说明(三)
  8. 【Swift 4.0】扩展 WCDB 支持 SQL 语句
  9. 【渝粤教育】国家开放大学2018年春季 8662-22T特色课(1) 参考试题
  10. linux tab 缩进,codemirror TAB 缩进问题记录
  11. jdk1.8以上连接Access数据库
  12. 亿乐社区一比一高仿源码全开源
  13. 脉冲耦合神经网络(PCNN)的python实现
  14. win10计算机文件坏了,win10电脑电脑注册表文件丢失或损坏0xc0000e9怎么办
  15. FT232RL FTDI USB转串口芯片SSOP28 国产替代
  16. css中的flex(弹性)布局
  17. 【Shader与ShaderToy 】画一个五角星
  18. padding的用途
  19. 熊猫烧香病毒完整解决方案
  20. matlab 点顺时针排序,算法 – 按顺时针顺序排序点?

热门文章

  1. kodi教程 linux,Kodi 设置教程 | Homepage of Zhikun Zhang
  2. mysql增加列并增加comment_运城多条高铁线路调整动车列数增加到99列
  3. VK1S68C中文资料
  4. 使用Python中的mock模块进行单元测试
  5. Leetcode: Increasing Triplet Subsequence
  6. [ios] NSSet,NSMutableSet[zhuan]
  7. Google发布Chrome 8
  8. mysql-mmm官方安装指南翻译
  9. C++之lock_guard和unique_lock自动加解锁区别
  10. webRTC之Mesh/MCU/SFU通信架构区别(九)