C语言会场安排问题贪心算法,贪心算法解决会场安排问题多处最优服务次序问题(含源代码).doc...
贪心算法解决会场安排问题多处最优服务次序问题(含源代码)
西 安年月日…,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...相关推荐
- 贪心算法--多处最优服务次序问题
问题描述: 设有n 个顾客同时等待一项服务.每个顾客需要服务一定时间.共有s 处可以 提供此项服务.应如何安排n 个顾客的服务次序才能使平均等待时间达到最小?平均等待时 ...
- 算法学习系列(贪心算法)—多处最优服务次序问题
问题描述: 设有n(1≤n≤100)个顾客同时等待一项服务.顾客i需要的服务时间为ti,1≤i≤n,共有s处提供此服务.应如何安排n个顾客的服务次序才能使平均等待时间达到最小.平均等待时间是n个顾客的 ...
- 最优服务次序问题-贪心算法
1.最优服务次序问题 (1)问题描述: 设有n 个顾客同时等待一项服务.顾客i需要的服务时间为ti, 1<=i <= n .应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待 ...
- 最优服务次序问题算法c语言,《算法分析与设计》最优服务次序问题的答案-20210414020541.docx-原创力文档...
最优服务次序问题 设有n个顾客同时等待同一项服务.顾客i需要的服务时间为ti,1<=iv=n 应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等待时间 是n个顾客等待服务时间的总和除 ...
- 【算法设计与分析】 最优服务次序问题
算法课程展示 最优服务次序问题 简介: 青岛某高校,信安专业,算法课程第三次课堂展示 问题描述 设有n个顾客同时等待一项服务,顾客i需要服务的时间为t[i](1<= i <=n).应如何安 ...
- 学生考勤系统设计c语言源程序文件的后缀是,C++学生考勤系统(含源代码).doc
C++学生考勤系统(含源代码).doc /C语言程序设计课程设计报告书题目 班级 学号 姓名 指导教师 周期 以下由验收老师填写成绩 年 月 日一.课程设计的目的与要求 (一)课程设计目的与任务C作为 ...
- 贪心算法解决活动安排-Python实现(排序+贪心选择)
贪心算法解决活动安排 问题 问题概述 分析问题 解决问题 编程 编程流程以及数据类型选择 发现问题以及解决 最终实现 总结 程序缺陷以及完善 解题心路历程 问题 问题概述 设有n个活动的集合E={1, ...
- 趣学算法--贪心算法
目录 一.贪心算法的性质 1.1贪心选择 1.2最优子结 二.贪心算法使用策略 2.1贪心策略 2.2局部最优解 2.3全局最优解 三.贪心算法的应用 3.1最简单的最优装载问题 3.2简单的会议安排 ...
- [sicily]【1001】 会议安排(田忌赛马类贪心)
题干: N个会议要同时举行,参会人数分别为A[0], A[1], ...,A[N-1]. 现有M个会议室,会议室可容纳人数分别为B[0], B[1], ...,B[M-1]. 当A[i]<=B[ ...
最新文章
- LightOJ1245-Harmonic Number (II) 【数学调和级数】
- java rtmp_搭建rtmp直播流服务之2:使用java实现ffmpeg命令接口化调用(用java执行ffmpeg命令)...
- 因深度学习成就,香港大学罗平入选《麻省理工科技评论》亚太区「35 岁以下创新者」榜单
- 智能媒体管理服务控制台功能体验
- bzoj2527: [Poi2011]Meteors
- ActiveReports 报表应用教程 (2)---清单类报表
- dotnet中的counters说明(三)
- 【Swift 4.0】扩展 WCDB 支持 SQL 语句
- 【渝粤教育】国家开放大学2018年春季 8662-22T特色课(1) 参考试题
- linux tab 缩进,codemirror TAB 缩进问题记录
- jdk1.8以上连接Access数据库
- 亿乐社区一比一高仿源码全开源
- 脉冲耦合神经网络(PCNN)的python实现
- win10计算机文件坏了,win10电脑电脑注册表文件丢失或损坏0xc0000e9怎么办
- FT232RL FTDI USB转串口芯片SSOP28 国产替代
- css中的flex(弹性)布局
- 【Shader与ShaderToy 】画一个五角星
- padding的用途
- 熊猫烧香病毒完整解决方案
- matlab 点顺时针排序,算法 – 按顺时针顺序排序点?
热门文章
- kodi教程 linux,Kodi 设置教程 | Homepage of Zhikun Zhang
- mysql增加列并增加comment_运城多条高铁线路调整动车列数增加到99列
- VK1S68C中文资料
- 使用Python中的mock模块进行单元测试
- Leetcode: Increasing Triplet Subsequence
- [ios] NSSet,NSMutableSet[zhuan]
- Google发布Chrome 8
- mysql-mmm官方安装指南翻译
- C++之lock_guard和unique_lock自动加解锁区别
- webRTC之Mesh/MCU/SFU通信架构区别(九)