xlxl @ 2019-04-14 19:18:41
//ski
using namespace std;
int n,m,a[102][102],cnt,maxn,ans,f[102][102],tmp;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int dfs(int x,int y){
if(f[x][y])
return f[x][y];
maxn=1;
for(int i=0;i<4;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>0&&ny>0&&nx<=n&&ny<=m&&a[nx][ny]>a[x][y]){
tmp=dfs(nx,ny)+1;
maxn=max(maxn,tmp);
}
}
f[x][y]=maxn;
return maxn;
}
int main(){
// freopen("ski6.in","r",stdin);
// freopen("ski.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
maxn=dfs(i,j);
f[i][j]=maxn;
ans=max(ans,maxn);
}
}
cout<<ans<<endl;
return 0;
}
by 我不认识你 @ 2019-04-14 19:20:11
希望更丰富的展现?使用Markdown
by Vanity_ @ 2019-04-14 19:55:48
希望更丰富的展现?使用Markdown
by t162 @ 2019-04-14 19:58:02
xlxl(大雾
by purinliang @ 2019-04-14 20:35:25
#include<bits/stdc++.h>
using namespace std;
int n,m,a[102][102],cnt,maxn,ans,f[102][102],tmp;
int dx[4]= {0,0,1,-1};
int dy[4]= {1,-1,0,0};
int dfs(int x,int y) {
if(f[x][y])
return f[x][y];
int maxn=1;
for(int i=0; i<4; i++) {
int nx=x+dx[i];
int ny=y+dy[i];
if(nx>0&&ny>0&&nx<=n&&ny<=m&&a[nx][ny]<a[x][y]) {
tmp=dfs(nx,ny)+1;
maxn=max(maxn,tmp);
}
}
f[x][y]=maxn;
return maxn;
}
int main() { // freopen("ski6.in","r",stdin); // freopen("ski.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
cin>>a[i][j];
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
maxn=dfs(i,j);
f[i][j]=maxn;
ans=max(ans,maxn);
}
}
cout<<ans<<endl;
return 0;
}
两个bug,一个是a[nx][ny]<a[x][y]
,另一个是int maxn=1
。
第一个bug不符合题目的语义,第二个bug使用了全局变量,在dfs过程中瞎改一通。
by wing_离殇 @ 2019-04-15 13:50:48
#include<bits/stdc++.h>
using namespace std;
int main() {
long long b,p,k,a,ans;
cin>>b>>p>>k;
a=pow(b,p);
ans=a%k;
cout<<ans<<endl;
return 0;
}
评测结果
by wing_离殇 @ 2019-04-15 13:53:29
希望更丰富的展现?使用Markdown