c_cpp设有Ñ个活动的集合e=1,2,...,n,其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源每个。活动i都有一个要求使用该资源的起始时(代码片段

author author     2023-01-09     577

关键词:

//4d1 活动安排问题 贪心算法
#include "stdafx.h"
#include <iostream> 
using namespace std; 
 
template<class Type>
void GreedySelector(int n, Type s[], Type f[], bool A[]);
 
const int N = 11;
 
int main()

	//下标从1开始,存储活动开始时间
	int s[] = 0,1,3,0,5,3,5,6,8,8,2,12;
 
	//下标从1开始,存储活动结束时间
	int f[] = 0,4,5,6,7,8,9,10,11,12,13,14;
 
	bool A[N+1];
 
	cout<<"各活动的开始时间,结束时间分别为:"<<endl;
	for(int i=1;i<=N;i++)
	
		cout<<"["<<i<<"]:"<<"("<<s[i]<<","<<f[i]<<")"<<endl;
	
	GreedySelector(N,s,f,A);
	cout<<"最大相容活动子集为:"<<endl;
	for(int i=1;i<=N;i++)
	
		if(A[i])
			cout<<"["<<i<<"]:"<<"("<<s[i]<<","<<f[i]<<")"<<endl;
		
	
 
	return 0;

 
template<class Type>
void GreedySelector(int n, Type s[], Type f[], bool A[])

	A[1]=true;
	int j=1;//记录最近一次加入A中的活动
 
	for (int i=2;i<=n;i++)//依次检查活动i是否与当前已选择的活动相容
	
		if (s[i]>=f[j])
		 
			A[i]=true;
			j=i;
		
		else
		
			A[i]=false;
		
	

c_cpp给定Ñ个作业的集合j1,j2,......,jn。每个作业必须先由机器1处理,然后由机器2处理。作业籍需要机器ĵ的处理时间为tji。对于一个确定的作业调度,设fji是作业我在(代码

查看详情

活动安排

题目描述设有n个活动的集合E=1,2……n,其中每个活动都要求使用同一资源。而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi。且si<fi。如果选择了活动i,则它在... 查看详情

活动安排问题

【问题】设有n个活动的集合E={1,2,…,n},其中每个活动都要求使用同一资源(如一个阶梯教室等),而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且0<=si<fi... 查看详情

c_cpp给定Ñ个矩阵:a1,a2,...,an,其中艾与艾+1是可乘的,i=1,2,...,n-1确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。输入数(代码片

查看详情

c_cpp给定Ñ个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且Ñ条边按照顺时针依次编号为1〜n的给出。了一个n=4个顶点的多边形。游(代码

查看详情

活动安排问题(代码片段)

问题描述:  设有n个活动的集合E=1,2,……,n,其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且si<fi... 查看详情

c_cpp求数字Ñ中1的个数(代码片段)

查看详情

(转)贪心算法之精辟

问题一、活动安排问题问题表述:设有n个活动的集合E = {1,2,…,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活i都有一个要求使用该资源的起始时间si和一个... 查看详情

noj1163活动安排问题[动态规划]

...        测试通过:55比赛描述设有n个活动的集合E={1,2,……,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。 查看详情

c_cpp面试题17:打印从1到最大的Ñ位数(代码片段)

查看详情

c_cppÑ个作业1,2,...,n要在由2台机器m1和m2组成的流水线上完成加工。每个作业加工的顺序都是先在m1上加工,然后在m2上加工.m1和m2加工作业我所需的时间分别为ai和璧(代码

查看详情

c_cpp设r=r1,r2,...,rn是要进行排列的Ñ个元素,ri=r-ri。集合x中元素的全排列记为彼尔姆(x)。(ri)彼尔姆(x)表示在全排列perm(x)的每(代码片段)

查看详情

codevs2610活动选择

2610活动选择题目描述 Description假设有一个需要使用某一资源的n(n≤1000)个活动组成的集合S,S={1,…,n}。该资源一次只能被一个活动占有,每一个活动有一个开始时间bi和结束时间ei(bi≤ei)。若bi>ej或者bj>ei,则活... 查看详情

回溯2--部分全排列

回溯2--部分全排列一、心得 二、题目及分析设有n个整数的集合{1,2,...,n},从中任意取出r个数进行排列(r<n),试着列出所有排列全排列的阉割版,修改输出限制条件即可三、代码及结果1/*2设有n个整数的集合{1,2... 查看详情

c_cpp设有一半径为[r的圆及其外切四边形。向该正方形随机地投掷Ñ个点。设落入圆内的点数为ķ。由于所投入的点在正方形上均匀分布,因而所投入的点落入圆内的概率为***。所以当ñ足(

查看详情

贪心入门——活动安排问题

贪心入门的几个例题来自51nod问题描述  有若干个活动,第i个开始时间和结束时间是[Si,fi),只有一个教室,活动之间不能交叠,求最多安排多少个活动?输入第1行:1个数N,线段的数量(2<=N<=10000)第2-N+1行:每行2个数,线... 查看详情

c_cpp给定可能包含重复项的数字集合,返回所有可能的唯一排列。例如,[1,1,2]有以下内容(代码片段)

查看详情

拓扑排序

...个全序,这个操作称之为拓扑排序。AOV-网,用顶点表示活动,用弧表示活动间的优先关系的有向图,不应该出现有向环,存在有向环意味着某项活动应以自己为先决条件,这是荒谬的。记住三句话:1.从有向图中选择一个入度为... 查看详情