Why CE/kel
  • 板块灌水区
  • 楼主Milky_Cat
  • 当前回复23
  • 已保存回复25
  • 发布时间2024/12/10 13:37
  • 上次更新2024/12/10 20:15:55
查看原帖
Why CE/kel
906320
Milky_Cat楼主2024/12/10 13:37

[Error] ld returned 1 exit status

闲着没事瞎写了一个矩阵类,然后还写挂了,CE。

#include<bits/stdc++.h>
using namespace std;
int N;
template<class Type, int size_n, int size_m>
	class matrix{
		public:
			static int n, m;
			Type val[size_n + 3][size_m + 3];
			matrix(){
				n = size_n, m = size_m;
			}
			void resize(int N, int M){
				this->n = N;
				this->m = M;
			}
			friend istream& operator >> (istream &ist, matrix &x){
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						ist >> x.val[i][j];
				return ist;
			}
			friend ostream& operator << (ostream &ost, matrix x){
				for (int i = 1; i <= n; i++){
					for (int j = 1; j <= m; j++)
						ost << x.val[i][j] << " ";
					ost << "\n";
				}
				return ost;
			}
			matrix operator = (matrix b){
				n = b.n;
				m = b.m;
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						this->val[i][j] = b.val[i][j];
				return *this;
			}
			matrix operator + (matrix b){
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						b.val[i][j] += this->val[i][j];
				return b;
			}
			matrix operator - (matrix b){
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						b.val[i][j] -= this->val[i][j];
				return b;
			}
			matrix operator * (matrix b){
				matrix tmp = b;
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= b.m; j++)
						for (int k = 1; k <= m; k++)
							tmp.val[i][j] += tmp.val[i][k] * tmp.val[k][j];
				return tmp;
			}
			matrix zig(){
				matrix tmp;
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						tmp.val[m - j + 1][i] = this->val[i][j];
				tmp.n = m, tmp.m = n;
				return tmp;
			}
			matrix flip_ud(){
				matrix tmp;
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						tmp.val[n - i + 1][j] = this->val[i][j];
				tmp.n = n, tmp.m = m;
				return tmp;
			}
			matrix flip_lr(){
				matrix tmp;
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						tmp.val[i][m - j + 1] = this->val[i][j];
				tmp.n = n, tmp.m = m;
				return tmp;
			}
			bool operator == (matrix b){
				for (int i = 1; i <= n; i++)
					for (int j = 1; j <= m; j++)
						if (this->val[i][j] != b.val[i][j])
							return 0;
				return 1;
			}
	};
matrix<char, 105, 105> a, b, tmp;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin >> N >> a >> b;
	a.resize(N, N);
	b.resize(N, N);
	if (a.zig() == b)
		cout << 3;
	else if (a.zig().zig() == b)
		cout << 2;
	else if (a.zig().zig().zig() == b)
		cout << 1;
	else if (a == b)
		cout << 6;
	else if (a.flip_lr() == b)
		cout << 4;
	else{
		tmp = a.flip_lr();
		for (int i = 1; i <= 3; i++){
			tmp = tmp.zig();
			if (tmp == b){
				cout << 5;
				return 0;
			}
		}
		cout << 7;
	}
	return 0;
}
2024/12/10 13:37
加载中...