C 动态异或矩阵、段故障或超时
我这样做是为了构建一个动态xor矩阵: 由于内存不足,我遇到了一个故障:C 动态异或矩阵、段故障或超时,c,matrix,bit-manipulation,C,Matrix,Bit Manipulation,我这样做是为了构建一个动态xor矩阵: 由于内存不足,我遇到了一个故障: int main() { long long int col,row; scanf("%lld %lld",&col,&row); int **matrix = new int*[row]; for(long long int i=0; i<row; i++) matrix[i] = new int[col]; for(long long int k
int main() {
long long int col,row;
scanf("%lld %lld",&col,&row);
int **matrix = new int*[row];
for(long long int i=0; i<row; i++)
matrix[i] = new int[col];
for(long long int k=0;k<row;k++)
{
for(long long int j=0;j<col;j++)
{
if(k==0)
scanf("%d",&matrix[k][j]);
else if(j!=(col-1))
__asm__ ( "xorl %%ebx, %%eax;": "=a"(matrix[k][j]) : "a"(matrix[k-`1][j]), "b"(matrix[k-1][j+1]));`
else if(j==(col-1))
__asm__ ( "xorl %%ebx, %%eax;": "=a"(matrix[k][j]) : "a" (matrix[k-1][j]), "b"(matrix[k-1][0]));
// matrix[k][j]=matrix[k-1][j]^matrix[k-1][0];
if(k==(row-1))
printf("%d ",matrix[k][j]);
}
}
}
intmain(){
长内列,行;
scanf(“%lld%lld”、&col、&row);
整数**矩阵=新整数*[行];
对于(long long int i=0;它的行数可以达到10^18这一事实应该告诉你,你不能在内存中这样做。这意味着有一个数学/逻辑解决方案。你是对的,但我不知道哪个是数学逻辑解决方案。也许你应该从纸上做一些计算开始,看看模式是什么。