⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gofishing.cpp

📁 算法中钓鱼算法的实现
💻 CPP
字号:
#include"stdio.h"
void xuanze(int n,int ci,int *f,int *d,int *count,int (*stay)[25])
{
	int indexmax;
	int flag=0;
	int currentmax;
	for(int i=1;i<=ci;i++)
	{	
		currentmax=f[1];
		indexmax=1;
		for(int j=1;j<=n;j++)
		{
			if(currentmax<f[j])
			{
				currentmax=f[j];
				indexmax=j;
			}
		}
		f[indexmax]=f[indexmax]-d[indexmax];
		for(int cishu=0,k=1;k<=n;k++)
		{
			if(f[k]<=0)
			{
				cishu++;
			}
		}
		count[n]=count[n]+currentmax;
		stay[n][indexmax]++;
		if(cishu==n)
		{
			stay[n][1]=stay[n][1]+ci-i;
			break;
		}	
	}	
}
main()
{
	int n,h,ci,ai[25],numberoffish,f[25],vf[25],d[25],t[25],count[25],stay[25][25];
	int tfish[25],tstay[25][25][25],tn[25];
	int s=0,tt;
	while(s>=0)
	{
		
		scanf("%d",&n);
		s++;
		tn[s]=n;
		if(n==0)
		{	s--;
			break;
		}
		scanf("%d",&h);
		for(int i=1;i<=n;i++)
			scanf("%d",&f[i]);
		for(i=1;i<=n;i++)
			scanf("%d",&d[i]);
		for(i=2;i<=n;i++)
			scanf("%d",&t[i]);
		t[1]=0;
		for(i=1;i<=n;i++)
			count[i]=0;
		for(i=1;i<=n;i++)
			for(int j=1;j<=n;j++)
				stay[i][j]=0;
		for(i=1;i<=n;i++)
		{
			ci=h*12;
			for(int j=1;j<=i;j++)
			{
				ci=ci-t[j];
			}
			for(j=1;j<=n;j++)
			{
				vf[j]=f[j];
			}
			xuanze(i,ci,vf,d,count,stay);
		}
		numberoffish=count[1];
		for(i=2;i<=n;i++)
		{
			if(numberoffish<count[i])
			{	
				numberoffish=count[i];
				ai[s]=i;
			}
		}
		tfish[s]=numberoffish;
		for(i=1;i<=n;i++)
		{	
			tstay[s][ai[s]][i]=stay[ai[s]][i];
		}
	}
	for(tt=1;tt<=s;tt++)
	{
		printf("%d",tstay[tt][ai[tt]][1]*5);
		for(int i=2;i<=tn[tt];i++)
		{
			printf(",%d",tstay[tt][ai[tt]][i]*5);
		}
		printf("\nNumber of fish expected:%d\n",tfish[tt]);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -