Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:少量测试数据+高斯消元代码In Reply To:少量测试数据+高斯消元代码 Posted by:15211160230 at 2017-03-31 17:00:08 > 搞了一下午QAQ。 > #include <cstdio> > #include <memory.h> > #include <cstring> > #include <algorithm> > #define maxn 11 > using namespace std; > int Map[maxn][maxn],N=9; > char *line[]={"ABDE","ABC","BCEF","ADG","BDEFH","CFI","DEGH","GHI","EFHI"}; > void Init() > { int i,j; > memset(Map,0,sizeof(Map)); > for(j=0;j<N;++j) > for(i=0;i<strlen(line[j]);++i) > Map[line[j][i]-'A'][j]=1; > } > int Free[maxn],ans[maxn]; > void GaussSolve() > { int i,j,k,res=0,r=0; > int x,y; > memset(Free,0,sizeof(Free)); > for(i=0;i<N;++i) > { if(Map[r][i]==0) > { for(j=r+1;j<N;++j) > if(Map[j][i]>0) > { for(k=i;k<=N;++k) > swap(Map[r][k],Map[j][k]); > break; > } > } > if(Map[r][i]==0) > { res++; > continue; > } > for(j=r+1;j<N;++j) > { if(Map[j][i]>0) > { x=Map[r][i]; > y=Map[j][i]; > for(k=i;k<=N;++k) > { Map[j][k]=Map[j][k]*x-y*Map[r][k]; > Map[j][k]=(Map[j][k]%4+4)%4; > } > } > } > Free[i]=1,r++; > } > int temp; > for(i=N-1;i>=0;--i) > { temp=Map[i][N]; > for(j=i+1;j<N;j++) > temp-=Map[i][j]*ans[j]; > temp=(temp%4+4)%4; > for(ans[i]=0;ans[i]<=3;++ans[i]) > if((ans[i]*Map[i][i]%4+4)%4==temp) > break; > ans[i]%=4; > } > bool flag=0; > for(i=0;i<N;++i) > for(j=0;j<ans[i];++j) > printf(flag==0?"%d":" %d",i+1),flag=1; > puts(""); > } > int main() > { int i,w; > Init(); > for(i=0;i<N;++i) > scanf("%d",&w),Map[i][N]=(4-w)%4; > GaussSolve(); > return 0; > } > /* > 2 1 3 > 0 1 2 > 3 1 0 > 1 2 2 2 4 4 5 5 5 6 6 7 7 8 9 > > 3 3 0 > 2 2 2 > 2 1 2 > 4 5 8 9 > > 0 0 0 > 0 0 0 > 0 0 2 > 3 3 5 5 6 6 7 7 8 8 9 9 > */ Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator