1 solutions

  • 0
    @ 2025-11-5 19:34:27

    C++ :

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int n;
    char map[255][255];
    int squ[255];
    void ju(){
    	for(int i=0;i<n;i++){
    		for(int j=0;j<n;j++){
    			if(map[i][j]=='1'){
    				int flag=0;
    				for(int k=1;;k++){
    					for(int x=0;x<=k;x++){
    						for(int y=0;y<=k;y++){
    							if(map[i+x][j+y]!='1'){
    								flag=1;break;
    							}
    						}
    						if(flag==1)break;
    					}
    					if(flag==1)break;
    					squ[k+1]++;
    				}
    			}
    		}
    	}
    }
    void aa(){
    	
    }
    int main(){
    	cin>>n;
    	for(int i=0;i<n;i++){
    		scanf("%s",&map[i]);
    	}
    	ju();
    	for(int i=2;i<=n;i++){
    		if(squ[i]!=0)cout<<i<<" "<<squ[i]<<endl;
    	}
    	return 0;
    }
    

    Pascal :

    var i,j,k,m,n,p,ans:Longint;
        ak:array[0..100000,0..30] of longint;
        w:array[0..100000] of longint;
        st:array[0..100000] of int64;
        ss:string;
        d:array[0..30] of longint;
    begin
    
    d[1]:=1;
    for i:=2 to 30 do
    d[i]:=d[i-1]*2;
     read(n,k);
     for i:=1 to n do
      read(w[i]);
     for i:=1 to n do
      begin
       p:=1;
       while w[i]>0 do
        begin
         if w[i] mod 2=1 then inc(ak[i,p]);
         w[i]:=w[i] div  2;
         inc(p);
        end;
      end;
    for i:=1 to n do
      for j:=1 to 30 do
       ak[i,j]:=ak[i-1,j]+ak[i,j];
    for i:=1 to n do
     begin
      m:=ak[i,1];
      for j:=1 to 30 do
       ak[i,j]:=ak[i,j]-m;
     end;
    for i:=1 to n  do
    for j:=1 to 30 do
     if ak[i,j]<0 then ak[i,j]:=0;
    for i:=1 to n do
     for j:=1 to 30 do
      st[i]:=st[i]+ak[i,j]*d[j];
    for i:=1 to n do
     for j:=i+1 to n do
      if st[i]=st[j] then if j-i>ans then ans:=j-i;
     writeln(ans);
    
    end.
    
    
    
    • 1

    Information

    ID
    19406
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By