#include <stdio.h>
#define N 100
void Greedyselector(int n, int s[], int f[], bool A[])
{
A[1]=true;
int j=1;
for(int i=2;i<=n;i++)
{
if(s[i]>=f[j])
{
A[i]=true;
j=i;
}else{
A[i]=false;
}
}
}
void Output(bool A[],int n)
{
printf("最优活动安排:");
for(int i=0;i<=n;i++)
{
if(A[i]==true)
printf("%d ",i);
}
}
int main()
{
int s[N]={0,1,3,0,5,3,5,6,8,8,2,12}, f[N]={0,4,5,6,7,8,9,10,11,12,13,14}; //s[i],f[i]存储活动 i的开始和结束时间
bool A[N]; //若活动 i被选择,则A[i]置true,否则置false
int n=11;
Greedyselector(n, s, f, A);
Output(A,n);
return 0;
}
活动 安排
于 2023-05-22 12:35:37 首次发布