#include <stdio.h>
//活动安排问题
//现有11个活动,需要使用某一个会议室且每次只能被一个活动占用
//用贪心算法使活动数尽可能多
int s[11+1]={0,1,3,0,5,3,5, 6, 8, 8, 2,12 };
int f[11+1]={0,4,5,6,7,8,9,10,11,12,13,14 };
char A[12];
void ff()
{
int i,j;
A[0]='t';
j=0;//第0项活动默认可以开展
for(i=1;i<=11;i++)
{
if(s[i]>=f[j])//第i活动可以接在j活动的后面开展
{
A[i]='t';
j=i;
}
else
A[i]='f';
}
}
void main()
{
int i,k=0;
ff();
printf("可以开展的活动有:");
for(i=1;i<=11;i++)
if(A[i]=='t')
{
printf("%d ",i);
k++;
}
printf("\n一共开展了%d项活动\n",k);
}
活动安排问题(贪心思想)
最新推荐文章于 2021-10-25 09:11:04 发布