为什么这段代码会厌氧
查看原帖
为什么这段代码会厌氧
1044970
LucAlva楼主2024/8/11 17:18
#include <bits/stdc++.h>
using namespace std;
int n,m;
const int N=1e5+10;
int a[N]{};
int c[2000][2000]{};
int aaa(int x,int y,int s){
    c[x][y]=0;
    int dx,dy;
    dx=x+1,dy=y;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    dx=x-1,dy=y;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    dx=x,dy=y+1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    dx=x,dy=y-1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    dx=x+1,dy=y+1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    dx=x+1,dy=y-1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    dx=x-1,dy=y+1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    dx=x-1,dy=y-1;
    if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&c[dx][dy]==1){
        s+=aaa(dx,dy,1);
    }
    return s;
}
int main(){
    cin>>n>>m;
    int s;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            char ccc;
            cin>>ccc;
            if(ccc=='*'){
                c[i][j]=1;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(c[i][j]==1){
                a[aaa(i,j,1)]++;
            }
        }
    }
    long long s1=0;
    for(int i=1;i<=N;i++){
    	if(a[i]>0){
    		s++;
    		long long s2=a[i];
    		s2*=i;
    		s1=max(s2,s1);
		}
	}
	cout<<s<<" "<<s1;
    return 0;
}

厌氧代码,关了O2就过了,因为所有死的人都吸过氧,所以我认为氧气有毒,因而造成代码错误为什么会这样啊

2024/8/11 17:18
加载中...