代码求调
  • 板块学术版
  • 楼主AC_NOIP_AK_IOI
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/10/28 12:18
  • 上次更新2023/11/2 11:06:22
查看原帖
代码求调
932933
AC_NOIP_AK_IOI楼主2023/10/28 12:18

P1219数字三角形,bfs.

#include<bits/stdc++.h>
#define int long long
using namespace std;
struct node
{
	int x,y,sum;
};
queue<node> q;
int n,a[1001][1001],ans,f[1001][1001];
int dx[2]={1,1};
int dy[2]={0,1};
signed main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=i;j++)
		{
			cin>>a[i][j];
		}
	}
	q.push(node{1,1,a[1][1]});
	f[1][1]=a[1][1];
	while(!q.empty())
	{
		node t=q.front();
		q.pop();
		ans=max(ans,t.sum);
		for(int i=0;i<2;i++)
		{
			int tx=t.x+dx[i];
			int ty=t.y+dy[i];
			if(tx>=1 && tx<=n && ty>=1 && ty<=tx)
			{
				if(f[t.x][t.y]+a[tx][ty]>f[tx][ty])
				{
					f[tx][ty]=f[t.x][t.y]+a[tx][ty];
					q.push({tx,ty,f[tx][ty]});
				}
			}
		}
	}
	cout<<ans;
	return 0;
}
2023/10/28 12:18
加载中...