Java——动态规划处理矩阵最值问题
·

矩阵方案数
public class Main {
public static void main(String[] args)
{ //矩阵方案数
int n,m;
Scanner cin=new Scanner (System.in);
n=cin.nextInt();
m=cin.nextInt();
int map[][]=new int[100][100];
for(int i=1;i<=Math.max(n,m);i++)
{
map[i][1]=map[1][i]=1;
}
for(int i=2;i<=n;i++)
{
for(int j=2;j<=m;j++)
{
if((i%2==0)&&(j%2==0))
{
map[i][j]=0;
}
else
{
map[i][j]=map[i-1][j]+map[i][j-1];
}
}
}
System.out.println(map[n][m]);
}
}
矩阵最大和
public class Zz {
public static void main(String[] args)
{ //矩阵最大和
int n,m;
Scanner cin=new Scanner (System.in);
n=cin.nextInt();
m=cin.nextInt();
int map[][]=new int[100][100];int dp[][]=new int[100][100];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
map[i][j]=cin.nextInt();
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
dp[i][j]=Math.max(dp[i-1][j],dp[i][j-1])+map[i][j];
}
}
System.out.println(dp[n][m]);
}
}
更多推荐
所有评论(0)