萌新求助:WA on #5
  • 板块CF41D Pawn
  • 楼主liu_chen_hao
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/10/23 20:37
  • 上次更新2023/10/27 06:14:30
查看原帖
萌新求助:WA on #5
438461
liu_chen_hao楼主2022/10/23 20:37
#include <bits/stdc++.h>
#define pb(x) push_back(x)
#define pf(x) push_front(x)
#define ppb(x) pop_back(x)
#define ppf(x) pop_front(x)
#define ll long long
#define ld long double
using namespace std;
const int N=105,V=3005;

int n,m,k,a[N][N];
int f[N][N][V],g[N][N][V];
string s[N];

void out(int x, int y, int v)
{
	if(x==1)
	{
		cout<<y<<endl;
		return;
	}
	if(g[x][y][v]==1) out(x-1,y-1,v-a[x][y]),cout<<'R';
	else out(x-1,y+1,v-a[x][y]),cout<<'L';
}
int main()
{
    //freopen(".in","r",stdin);
    //freopen(".out","w",stdout);
    ios::sync_with_stdio(false);
    cin>>n>>m>>k;
    for(int i=1; i<=n; i++) cin>>s[i];
    for(int i=1; i<=n; i++)
    	for(int j=1; j<=m; j++) a[i][j]=s[i][j-1]-'0';

    for(int i=1; i<=m; i++) f[1][i][a[1][i]]=1;
    for(int i=2; i<=n; i++)
    {
    	for(int j=1; j<=m; j++)
    	{
    		for(int p=a[i][j]; p<=3000; p++)
    		{
    			if(j>1 && f[i-1][j-1][p-a[i][j]]) f[i][j][p]=1,g[i][j][p]=1;
    			if(j<m && f[i-1][j+1][p-a[i][j]]) f[i][j][p]=1,g[i][j][p]=2;
    		}
    	}
    }
    for(int i=3000; i>=0; i--)
    {
    	if(i%(k+1)!=0) continue;
    	for(int j=1; j<=m; j++)
    		if(f[n][j][i])
    		{
    			cout<<i<<endl;
    			out(n,j,i);
    			return 0;
    		}
    }
    cout<<-1;
    return 0;
}
2022/10/23 20:37
加载中...