社区讨论

80求优化

P1095[NOIP 2007 普及组] 守望者的逃离参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo35mnyw
此快照首次捕获于
2023/10/24 01:11
2 年前
此快照最后确认于
2023/10/24 01:11
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int m,s,t,f[300010][1010],ans=99999999,maxn=-99999999;
int main()
{
	scanf("%d%d%d",&m,&s,&t);
	for(int i=1;i<=t;i++)
	    for(int j=1;j<=m;j++)
	        f[i][j]=-99999999;
	f[0][m]=0;
	for(int i=1;i<=t;i++)
	    {
	    for(int j=0;j<=m;j++)
	        {
	        	f[i][j]=max(f[i][j],f[i-1][j]+17);
	        	if(j>=4)f[i][j]=max(f[i][j],f[i-1][j-4]);
	        	if(f[i][j]>=s)ans=min(ans,i);
	        	maxn=max(maxn,f[i][j]);
			}
		for(int j=m;j>=0;j--)
		    {
		    if(j+10<=m)f[i][j]=max(f[i][j],f[i-1][j+10]+60);
		    if(f[i][j]>=s)ans=min(ans,i);
		    maxn=max(maxn,f[i][j]);
		    }
	    }
	if(ans!=99999999)printf("Yes\n%d",ans);
	else printf("No\n%d",maxn);
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...