1 条题解

  • 1
    @ 2024-12-25 16:38:20

    非常豪婉的一道模拟题 只需要写出旋转和对称的函数就AC了~~

    警示后人

    一定要想好旋转的关系再写!!

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    bool bef[11][11]={0},aft[11][11]={0},ls[11][11]={0};
    void tur()
    {
    	bool ls_[11][11];
    	for (int i=1;i<=n;i++){
    		for (int j=1;j<=n;j++){
    			/*怎么写呢?请补全*/
    		}
    	}
    	for (int i=1;i<=n;i++){
    		for (int j=1;j<=n;j++){
    			ls[i][j]=ls_[i][j];
    		}
    	}
    }
    void mir()
    {
    	for (int i=1;i<=n;i++){
    		for (int j=1;j<=n/2;j++){
    			bool tmp=ls[i][j];
    			/*好写得很qwq,你一定会吧?请补全*/
    		}
    	}
    }
    bool jud()
    {
    	for (int i=1;i<=n;i++){
    		for (int j=1;j<=n;j++){
    			if (ls[i][j]!=aft[i][j]){
    				return 0;
    			}
    		}
    	}
    	return 1;
    }
    int main()
    {
    	cin>>n;
    	for (int i=1;i<=n;i++){
    		string a;
    		cin>>a;
    		for (int j=1;j<=n;j++){
    			bef[i][j]=(a[j-1]=='@');
    			ls[i][j]=bef[i][j];
    		}
    	}
    	for (int i=1;i<=n;i++){
    		string a;
    		cin>>a;
    		for (int j=1;j<=n;j++){
    			aft[i][j]=(a[j-1]=='@');
    		}
    	}
    	tur();
    	if (jud()){
    		cout<<1;
    		return 0;
    	}
    	tur();
    	if (jud()){
    		cout<<2;
    		return 0;
    	}
    	tur();
    	if (jud()){
    		cout<<3;
    		return 0;
    	}
    	tur();//恢复原状
    	mir();
    	if (jud()){
    		cout<<4;
    		return 0;
    	}
    	tur();
    	if (jud()){
    		cout<<5;
    		return 0;
    	}
    	tur();
    	if (jud()){
    		cout<<5;
    		return 0;
    	}
    	tur();
    	if (jud()){
    		cout<<5;
    		return 0;
    	}
    	tur(),mir();//恢复原状
    	if (jud()){
    		cout<<6;
    		return 0;
    	}
    	cout<<7;
    	return 0;
    }
    
    • 1

    信息

    ID
    8
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    27
    已通过
    7
    上传者