讨论 / What’s wrong?!!!!!
飞雪天涯 2008-10-03 06:09:00
点我顶贴 收藏 删除
#include<iostream>

#define MAXN 20

#define MAXM 20

using namespace std;

int n,m;

int a[MAXN][MAXM],best_sol[MAXN][MAXM],best_area=0;

int main (void){

cin>>n>>m;

for (int i=0;i<n;i++)

for (int j=0;j<m;j++)

cin>>a[i][j],best_sol[i][j]=a[i][j];

for (int x1=0;x1<n;x1++)

for (int y1=0;y1<m;y1++)

for (int x2=x1;x2<n;x2++)

for (int y2=y1;y2<m;y2++){

int ans=0;

bool maintain=false;

for (int i=x1;i<=x2;i++)

if (!maintain)

for (int j=y1;j<=y2;j++){

if (a[i][j]==1){

maintain=true;

break;

}

ans++;

}

if (!maintain&&ans>best_area){

best_area=ans;

for (int i=0;i<n;i++)

for (int j=0;j<m;j++){

if (a[i][j]==1)

best_sol[i][j]=1;

else best_sol[i][j]=((i>=x1&&i<=x2)&&(j>=y1&&j<=y2))?2:0;

}

}

}

for (int i=0;i<n;i++){

for (int j=0;j<m;j++)

cout<<best_sol[i][j]<<’ ’;

cout<<endl;

}

return 0;

}

/*

input:

3 2

0 0

1 0

0 0

output:

0 2

1 2

0 2

*/

#1 飞雪天涯@2008-10-03 06:09:00
回复 删除
#include<iostream>

#define MAXN 20

#define MAXM 20

using namespace std;

int n,m;

int a[MAXN][MAXM],best_sol[MAXN][MAXM],best_area=0;

int main (void){

cin>>n>>m;

for (int i=0;i<n;i++)

for (int j=0;j<m;j++)

cin>>a[i][j],best_sol[i][j]=a[i][j];

for (int x1=0;x1<n;x1++)

for (int y1=0;y1<m;y1++)

for (int x2=x1;x2<n;x2++)

for (int y2=y1;y2<m;y2++){

int ans=0;

bool maintain=false;

for (int i=x1;i<=x2;i++)

if (!maintain)

for (int j=y1;j<=y2;j++){

if (a[i][j]==1){

maintain=true;

break;

}

ans++;

}

if (!maintain&&ans>best_area){

best_area=ans;

for (int i=0;i<n;i++)

for (int j=0;j<m;j++){

if (a[i][j]==1)

best_sol[i][j]=1;

else best_sol[i][j]=((i>=x1&&i<=x2)&&(j>=y1&&j<=y2))?2:0;

}

}

}

for (int i=0;i<n;i++){

for (int j=0;j<m;j++){

cout<<best_sol[i][j];

if (j!=m-1) cout<<’ ’;

}

cout<<endl;

}

return 0;

}

/*

input:

3 2

0 0

1 0

0 0

output:

0 2

1 2

0 2

*/

查看更多回复
提交回复