Sylvester construction 11009
#include <iostream>
using namespace std;
int a[64],b[64];
__int64 poww(int x,int y)
{
__int64 t=1;
for(int j=0;j<y;j++)
t*=x;
return t;
}
int logg(__int64 nu)
{int i;
for(i=0;i<63;i++)
if((poww(2,i)<=nu&&poww(2,i+1)>nu))
break;
return i;
}
int cc(__int64 d,__int64 e)
{int s,t;
for(int i=0;i<64;i++)
{a[i]=0;b[i]=0;}
while(d>0)
{
s=logg(d);
a[s]=1;
d-=poww(2,s);
}
while(e>0)
{
t=logg(e);
b[t]=1;
e-=poww(2,t);
}
int cnt=0;
for(int k=0;k<64;k++)
{
if(a[k]==b[k]&&a[k]!=0)
cnt++;
}
if(cnt%2==1) return -1;
if(cnt%2==0) return 1;
}
int main()
{
__int64 m,n,x1,y1,w,l,p,q;
while(cin>>m)
{
for(int i=0;i<m;i++)
{
cin>>n>>x1>>y1>>w>>l;
for(p=y1;p<y1+l;p++)
{
for(q=x1;q<x1+w-1;q++)
{
cout<<cc(p,q)<<" ";
}
cout<<cc(p,q)<<endl;
} cout<<endl;
}
}
return 0;
}
浙公网安备 33010602011771号