标签:... BZOJ1085 int fy chr stp SCOI2005 骑士 include
又是搜索...上瘾了????
好吧...启发式搜索IDA*~_~
但还不是搜索嘛...
估价函数打出来就好了哇
还是比较水的一题
(话说今天看到一个有意思的东西)
/** * ┏┓ ┏┓+ + * ┏┛┻━━━┛┻┓ + + * ┃ ┃ * ┃ ━ ┃ ++ + + + * ███━████+ * ◥██◤ ◥██◤ + * ┃ ┻ ┃ * ┃ ┃ + + * ┗━┓ ┏━┛ * ┃ ┃ + + + +Code is far away from * ┃ ┃ + bug with the animal protecting * ┃ ┗━━━┓ 神兽保佑,代码无bug * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ + + + + * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛+ + + + */
1 #include<cstdio> 2 #include<queue> 3 #include<iostream> 4 #include<cstring> 5 using namespace std; 6 inline int read(){ 7 int ans=0,f=1;char chr=getchar(); 8 while(!isdigit(chr)){if(chr=='-') f=-1;chr=getchar();} 9 while(isdigit(chr)){ans=(ans<<3)+(ans<<1)+chr-48;chr=getchar();} 10 return ans*f; 11 }int T,a[6][6],dx[]={1,2,2,1,-1,-2,-2,-1},dy[]={2,1,-1,-2,-2,-1,1,2},ff,b[6][6],x,y;const int S[6][6]={{0,0,0,0,0,0},{0,1,1,1,1,1},{0,0,1,1,1,1},{0,0,0,2,1,1},{0,0,0,0,0,1},{0,0,0,0,0,0}}; 12 char chr; 13 inline int check(){int ans=0; 14 for(int i=1;i<=5;i++) 15 for(int j=1;j<=5;j++) 16 if(a[i][j]!=S[i][j]) ++ans; 17 return ans; 18 }void dfs(int stp,int x,int y,int depth){ 19 if(stp==depth){if(!check()) ff=1;return;} 20 if(check()+stp>depth+1) return; 21 for(int i=0;i<8;i++){ 22 int fx=x+dx[i],fy=y+dy[i]; 23 if(fx<1||fy<1||fx>5||fy>5) continue; 24 swap(a[x][y],a[fx][fy]),dfs(stp+1,fx,fy,depth),swap(a[x][y],a[fx][fy]); 25 } 26 }int main(){ 27 T=read(); 28 while(ff=0,T--){ 29 for(int i=1;i<=5;i++) 30 for(int j=1;j<=5;j++) 31 cin>>chr,((chr=='*')?(x=i,y=j,b[i][j]=2):b[i][j]=chr-48); 32 for(int stp=1;stp<=15;stp++){ 33 memcpy(a,b,sizeof(a)); 34 dfs(0,x,y,stp); 35 if(ff){printf("%d\n",stp);break;} 36 }if(!ff) puts("-1"); 37 } 38 return 0; 39 } 40 /** 41 * ┏┓ ┏┓+ + 42 * ┏┛┻━━━┛┻┓ + + 43 * ┃ ┃ 44 * ┃ ━ ┃ ++ + + + 45 * ███━████+ 46 * ◥██◤ ◥██◤ + 47 * ┃ ┻ ┃ 48 * ┃ ┃ + + 49 * ┗━┓ ┏━┛ 50 * ┃ ┃ + + + +Code is far away from 51 * ┃ ┃ + bug with the animal protecting 52 * ┃ ┗━━━┓ 神兽保佑,代码无bug 53 * ┃ ┣┓ 54 * ┃ ┏┛ 55 * ┗┓┓┏━┳┓┏┛ + + + + 56 * ┃┫┫ ┃┫┫ 57 * ┗┻┛ ┗┻┛+ + + + 58 */
标签:...,BZOJ1085,int,fy,chr,stp,SCOI2005,骑士,include 来源: https://www.cnblogs.com/zhenglw/p/10518632.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。