VALLEYKING @ 2019-08-11 21:58:46
using namespace std; int a[100][100];//山体高度 int f[100][100];//路线长度 int main(){ int n,m; cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ cin>>a[i][j]; f[i][j]=1; }
for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ if(a[i][j]<a[i+1][j]) f[i+1][j]+=f[i][j]; if(a[i][j]<a[i][j+1]) f[i][j+1]+=f[i][j]; if(a[i][j]<a[i-1][j]) f[i-1][j]+=f[i][j]; if(a[i][j]<a[i][j-1]) f[i][j-1]+=f[i][j]; } for(int i=1;i<=n;i++){//每个点的路线最优****长度 for(int j=1;j<=m;j++) cout<<f[i][j]<<" "; cout<<endl; } return 0;
by zhjxaoini @ 2019-08-11 21:59:43
希望更丰富的展现?使用Markdown
by 冥诺在线发呆 @ 2019-08-11 22:05:04
希望更丰富的展现?使用Markdown
by D447H @ 2019-08-16 16:13:38
#include<bits/stdc++.h>
using namespace std;
int a[100][100];//山体高度
int f[100][100];//路线长度
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
f[i][j]=1;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(a[i][j]<a[i+1][j])
f[i+1][j]+=f[i][j];
if(a[i][j]<a[i][j+1])
f[i][j+1]+=f[i][j];
if(a[i][j]<a[i-1][j])
f[i-1][j]+=f[i][j];
if(a[i][j]<a[i][j-1])
f[i][j-1]+=f[i][j];
}
for(int i=1;i<=n;i++)
{//每个点的路线最优****长度
for(int j=1;j<=m;j++)
cout<<f[i][j]<<" ";
cout<<endl;
}
return 0;
}
帮你整理一下
by HeTaiyu @ 2019-08-25 14:32:39
希望更丰富的展现?使用Markdown!