博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P3930 SAC E#1 - 一道大水题 Knight
阅读量:5093 次
发布时间:2019-06-13

本文共 1656 字,大约阅读时间需要 5 分钟。

 

TLE,额 ,有空再写吧。

#include
#include
#include
#include
#include
using namespace std;const int dx[8]={
1,1,-1,-1,2,2,-2,-2},dy[8]={
2,-2,2,-2,1,-1,1,-1};const int N = 80;struct node{ int x,y; int step,state;};queue
q;int n,sx,sy;char a[N][N];int id[N][N],tot;bool Vis[N][N][20000];bool check( int state,int x ,int y){ if(Vis[x][y][state]) return 0; //下 for(int i=x+1;i<=n;i++) if(a[i][y]!='.'&& !(state&(1<
=1;j--) if(a[x][j]!='.'&&!(state&(1<
=1&&j>=1;i--,j--) if(a[i][j]!='.'&&!(state&(1<
=1;i++,j--) if(a[i][j]!='.'&&!(state&(1<
=1&&j<=n;i--,j++) if(a[i][j]!='.'&&!(state&(1<
=1&&X<=n&&Y>=1&&Y<=n&&a[X][Y]=='K') return 0; } if(x!=1&&((y!=n&&a[x-1][y+1]=='P'&&!(state&(1<<(id[x-1][y+1]))||(y!=1&&a[x-1][y-1]=='P'&&!(state&(1<
=1&&x<=n&&y>=1&&y<=n) { if(a[i][j]=='X') return 0; } return 1;}void work(){ queue
q;tot=0; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { id[i][j]=-1,a[i][j]=0; for(int k=0;k<=(1<<15);k++) Vis[i][j][k]=0; } for(int i=1;i<=n;i++) { scanf("%s",a[i]+1); for(int j=1;j<=n;j++) { if(a[i][j]=='O') sx=i,sy=j,a[i][j]='.'; else if(a[i][j]=='C'||a[i][j]=='K'||a[i][j]=='Q'||a[i][j]=='X'||a[i][j]=='P') id[i][j]=tot++; else a[i][j]='.'; } } if(!check(0,sx,sy)) { cout<<-1; return; } q.push((node){sx,sy,0,0}); node now;int x,y,state; while(!q.empty()) { now=q.front();q.pop(); state=now.state; for(int i=0;i<8;i++) { x=now.x+dx[i];y=now.y+dy[i]; if(x<1||x>n||y<1||y>n) continue; if(a[x][y]=='X') { printf("%d\n",now.step+1); return; } if(a[x][y]!='.') state|= 1<

 

转载于:https://www.cnblogs.com/CLGYPYJ/p/7675879.html

你可能感兴趣的文章
Batch Normalization
查看>>
saltstack
查看>>
对于java中接口的作用与理解
查看>>
Hibernate的session一级缓存
查看>>
【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度
查看>>
LINUX中杀进程
查看>>
Prim算法
查看>>
字符串哈希
查看>>
discuz /faq.php SQL Injection Vul
查看>>
条码控件商IDAutomation极大改善了Barcode Image Generator性能
查看>>
linux运维、架构之路-Kubernetes集群部署TLS双向认证
查看>>
leetcode算法:Trim a Binar Search Tree
查看>>
机器学习之路: python 支持向量机 LinearSVC 手写字体识别
查看>>
和运营开会的知道的一些点
查看>>
学习NLP:《自然语言处理原理与技术实现(罗刚)》PDF+代码
查看>>
2.5.1 命令与参数
查看>>
重装win 修复ubuntu引导
查看>>
Keyboard项目中观察者模式解析
查看>>
【转】Oracle查询用户所有表
查看>>
微信域名防红防屏蔽系统的原理 微信域名防屏蔽的注意点
查看>>