题意同poj 1222 这题问你要涂多少次,但是有可能出现无解的情况。
无解的判断详见线性代数。
这题数据比较水,其实是需要枚举自由基的。
#include"cstdlib"
#include"cstdio"
#include"cstring"
#include"cmath"
#include"queue"
#include"algorithm"
#include"iostream"
using namespace std;
int equ,var;
int a[17*17][17*17]; //增广矩阵
int x[17*17]; //x的解系
int nofree_num,ans; //nofree_num 为非自由元的数量
int gcd(int x,int y)
{
return y?gcd(y,x%y):x;
}
int lcm(int x,int y)
{
return x/gcd(x,y)*y;
}
void debug() //调试
{
int i,j;
for(i=0; i<equ; i++)
{
for(j=0; j<=var; j++) printf("%d ",a[i][j]);
puts("");
}
puts("");
}
void ok(int tep,int x,int y,int n)
{
if(x<0||y<0||x>=n||y>=n) return;
a[tep][x*n+y]=1;
return;
}
void build(int n) //构造初始系数矩阵
{
int i,j;
for(i=0; i<