世界名画陈列馆问题.doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:4 大小:20KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

世界名画陈列馆问题.doc

世界名画陈列馆问题.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication5{classProgram{staticint[,]d={{0,0,0},{0,0,0},{0,0,-1},{0,-1,0},{0,0,1},{0,1,0}};staticint[,]x=newint[100,100];staticint[,]y=newint[100,100];staticint[,]bestx=newint[100,100];staticintn,m,best,k=0,t=0;staticintt1,t2,more;staticvoidchange(inti,intj){x[i,j]=1;k++;for(intr=1;r<=5;r++){intp=i+d[r,1];intq=j+d[r,2];y[p,q]++;if(y[p,q]==1)t++;}}staticvoidrestore(inti,intj){x[i,j]=0;k--;for(intr=1;r<=5;r++){intp=i+d[r,1];intq=j+d[r,2];y[p,q]--;if(y[p,q]==0)t--;}}staticvoidsearch(inti,intj){do{j++;if(j>m){i++;j=1;}}while(!((y[i,j]==0)||(i>n)));if(i>n){if(k<best){best=k;for(intp=1;p<=n;p++)for(intq=1;q<=m;q++)bestx[p,q]=x[p,q];return;}}if(k+(t1-t)/5>=best){return;}if((i<n-1)&&(k+(t2-t)/5>=best)){return;}if(i<n){change(i+1,j);search(i,j);restore(i+1,j);}if(y[i,j+1]==0){change(i,j);search(i,j);restore(i,j);}if((j<m)&&((y[i,j+1]==0)||(y[i,j+2]==0))){change(i,j+1);search(i,j);restore(i,j+1);}}staticvoidcompute(){more=m/4+1;if(m%4==3)more++;elseif(m%4==2)more+=2;t2=m*n+more+4;t1=m*n+4;best=65536;x=newint[100,100];y=newint[100,100];if(m==1&&n==1){Console.WriteLine(1);Console.WriteLine(1);}for(inti=0;i<=m+1;i++){y[0,i]=1;y[n+1,i]=1;}for(inti=0;i<=n+1;i++){y[i,0]=1;y[i,m+1]=1;}search(1,0);}staticvoidMain(string[]args){Console.WriteLine("Pleaseentern、m:");n=int.Parse(Console.ReadLine());m=int.Parse(Console.ReadLine());compute();Console.WriteLine(best);for(inti=1;i<=n;i++){for(intj=1;j<=m;j++){Console.Write(bestx[i,j]+"");}Console.WriteLine();}}}}