1 条题解
-
0
挺难一道题,装逼我让你飞起来!#include<bits/stdc++.h> using namespace std; char s[21][21]; //s为字符数组 int m,n,ans=-1e9;//m为行,n为列,ans为最大值 int f(int a,int b,int c,int d){//函数 int x=0,y=0;//x为行,y为列 if((a-c+1)*(b-d+1)%2==1) return 0;//如果它不是平衡的,该罚 for(int i=a;i<=c;i++){//遍历行 for(int j=b;j<=d;j++){//遍历列 if(s[i][j]=='1') x++;//白加 if(s[i][j]=='0') y++;//黑加 } } if(x==y) return x+y;//返回总和 return 0;//不相等,该罚 } int main(){ cin>>m>>n;//输入 for(int i=1;i<=m;i++){//遍历行 for(int j=1;j<=n;j++){//遍历列 cin>>s[i][j];//输入 } } for(int i=1;i<=m;i++){//遍历左上角 for(int j=1;j<=n;j++){//遍历左下角下角 for(int ii=i;ii<=m;ii++){//遍历右上角 for(int jj=j;jj<=n;jj++){//遍历右下角 ans = max(ans,f(i,j,ii,jj));//打擂台 } } } } cout<<ans;//输出 return 0;//完美 }
- 1
信息
- ID
- 1338
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者