求助,樣例都不對
查看原帖
求助,樣例都不對
700986
IkunFriendsChat楼主2023/1/5 17:02

RT,樣例莫名多了個5,輸出72

#include<cstdio>
#include<utility>
#include<cstring>
using namespace std;
#define mkpr(a,b) make_pair(a,b)
int n,x,y;long long a[11][11],z,ans;
struct Build_Map//建圖 
{
	pair<int,int> odr[20];//已經走過的順序 
	long long val;//價值 
	int rp=1;//處理目前數組儲存的順序 
}mp[11][11];
long long fw()//貪心訪問 
{
	for(int i=2;i<=n;i++)
	{
		for(int j=2;j<=n;j++)
		{
			if(mp[i-1][j].val>mp[i][j-1].val)
			{
				mp[i][j].val=a[i][j]+mp[i-1][j].val;
				mp[i][j].odr[mp[i][j].rp++]=mkpr(i-1,j);
			}
			else
			{
				mp[i][j].val=a[i][j]+mp[i][j-1].val;
				mp[i][j].odr[mp[i][j].rp++]=mkpr(i,j-1);
			}
			//貪心思想 
		}
	}
	return mp[n][n].val;
}
void cllg()//處理路過的方塊 
{
	for(int i=1;i<=2*n;i++)
	a[mp[n][n].odr[i].first][mp[n][n].odr[i].second]=0;
}
int main()
{
	scanf("%d",&n);
	while(scanf("%d%d%lld",&x,&y,&z)&&(x||y||z))a[x][y]=z;
	ans=fw();
	cllg();
	memset(mp,0,sizeof mp);
	ans+=fw();
	printf("%lld",ans);
	return 0;
}
2023/1/5 17:02
加载中...