MLE蒟蒻求救
查看原帖
MLE蒟蒻求救
339299
osfly楼主2021/2/6 16:23
#include<cstdio>
#include<cstring>
//M	魔法初值	S 与出口的距离		T 沉没时间 
int M,S,T;
bool flag;
int maxd;			//max dis
int mint=0x3f3f3f;	//min time
int f[1100][300100];
void dfs(int mf,int dis,int time)
{
	if(time>T) return ;
	if(dis>maxd) maxd=dis;
	if(dis>=S)
	{
		if(mint>time) mint=time;
		flag=true;
		return;
	}
	if(dis<f[mf][time]) return ;
	f[mf][time]=dis;
	//用魔法
	if(mf>=10) dfs(mf-10,dis+60,time+1);
	//走 
	dfs(mf,dis+17,time+1);
	//恢复
	dfs(mf+4,dis,time+1); 
}
int main()
{
	memset(f,-1,sizeof(f));
	scanf("%d%d%d",&M,&S,&T);
	dfs(M,0,0);
	if(flag) printf("Yes\n%d",mint);
	else printf("No\n%d",maxd);
	return 0;
}
2021/2/6 16:23
加载中...