题意:
      有一个国王和很多骑士,他们都要到某一个点去集合,然后问所有人都到达某个终点的距离和最小是多少?过程中如果国王遇到了一个骑士的话,国王就可以和骑士一起按照骑士的走法走,这是两个人算一个人,同时国王有八种走法,骑士也有八种走法,两个不一样。

思路:

      可以枚举终点,和骑士相交的点还有和那个骑士相交,只要确定这三个点后距离就出来了,求距离可以用广搜预处理,也可以用最短路预处理,不管用什么记得细心点,还有对于国王的最短路直接可以算出来,就是max(abs(x1-x2),abs(y1-y2))。


#include<queue>
#include<stdio.h>
#include<string.h>#define N 70
#define INF 1000000000using namespace std;typedef struct
{int x ,y ,t;
}NODE;NODE xin ,tou;
NODE node[N];
int dis[N][N];
int mark[N];
int dir[8][2] = {1 ,2 ,1 ,-2 ,-1 ,2 ,-1 ,-2 ,2 ,1 ,2 ,-1 ,-2 ,1 ,-2 ,-1};int minn(int x ,int y)
{return x < y ? x : y;
}int maxx(int x ,int y)
{return x > y ? x : y;
}int abss(int x)
{return x > 0 ? x : -x;
}bool ok(int x ,int y)
{return x >= 1 && x <= 8 && y >= 1 && y <= 8 && !mark[(x-1)*8+y];
}void BFS(int x ,int y)
{queue<NODE>q;xin.x = x ,xin.y = y ,xin.t = 0;memset(mark ,0 ,sizeof(mark));mark[(x-1)*8+y] = 1;dis[(x-1)*8+y][(x-1)*8+y] = 0;q.push(xin);while(!q.empty()){tou = q.front();dis[(x-1)*8+y][(tou.x-1)*8+tou.y] = tou.t;q.pop();for(int i = 0 ;i < 8 ;i ++){xin.x = tou.x + dir[i][0];xin.y = tou.y + dir[i][1];xin.t = tou.t + 1;if(ok(xin.x ,xin.y)){mark[(xin.x-1)*8+xin.y] = 1;q.push(xin);}}}return ;
}int main ()
{char str[150];int i ,j ,k ,x ,y;for(i = 1 ;i <= 8 ;i ++)for(j = 1 ;j <= 8 ;j ++)BFS(i ,j);while(~scanf("%s" ,str)){int len = strlen(str);int id = 0;for(i = 0 ;i < len ;i += 2){x = str[i+1] - '0';y = str[i] - 'A' + 1;node[++id].x = x;node[id].y = y;}int ans = INF;for(i = 1 ;i <= 64 ;i ++) //终点for(j = 1 ;j <= 64 ;j ++) //相遇点for(k = 2 ;k <= id ;k ++) //相遇的那个骑士{int s = 0;x = (j-1) / 8 + 1;y = j % 8;if(!y) y = 8;s = maxx(abss(x - node[1].x),abss(y - node[1].y));s += dis[(node[k].x - 1) * 8 + node[k].y][j];s += dis[j][i];for(int w = 2 ;w <= id ;w ++){if(w == k) continue;s += dis[(node[w].x-1)*8+node[w].y][i];}if(s < ans) ans = s;}if(id == 1) ans = 0;printf("%d\n" ,ans);}return 0;}

POJ1178枚举三个地方(所有点都去同一个点)相关推荐

  1. 日本“女机器人”畅销全球,有三个地方最吸引人,网友:想拥有

    在这个科技时代,人们对于各种科技产品都有着浓厚的兴趣.女性机器人也是如此,让全球男性朋友们都为之"疯狂".而日本的女性机器人,则是女机器人市场上最受欢迎的了.几乎一度出现了供不应求 ...

  2. 大连鸿蒙刺青怎么样,哪个部位纹身最“疼”?纹身师:敢在这三个地方纹身的,是真汉子...

    说到纹身,现在的很多年轻人想必都是非常熟悉的吧,纹身在古代的时候也叫刺青,用来惩罚那些罪恶大极的人,但是随着社会的发展和时间的推移,现在纹身俨然已经成为了一种潮流,很多人都尝试过纹身,对纹身的感觉还记 ...

  3. 吻过你这三个地方的男人,定是对你动了真情,错不了

    在两性关系中,亲吻是最常见的表达.两性关系的爱慕之情的,最直接的方式.可男人亲吻女人,也有不同的意图,并不是每个男人亲吻你,就是对你动了真心,动了真情. 有些男人亲吻一个女人,不过是希望女人放松对他的 ...

  4. 终端服务器有多种运行模式,云终端的三种工作模式你都知道的吗

    原标题:云终端的三种工作模式你都知道的吗 不知道大家有没有发现这几年来我们办公的电脑不知不觉中有笨重的台式机逐渐变成了小巧的云终端在使用的,我们去医院看病时也发现他们的办公的台式机也变成了云终端,甚至 ...

  5. 真实股市房市信托本质,金融故事三则:钱都去哪儿了?

    什么叫做虚拟经济.泡沫经济.次贷危机.金融危机?看完本文这几个简短精辟故事,你就都知道了. 故事(1) 有一个商人到了一个山村,村子周围的山上全是猴子. 商人就和村子种地的农民说,我买猴子,100元一 ...

  6. 十八、数据容器、数据访问宽度、端口(计算机对数据处理方式:读取、写入、运算;数据可存放三个地方:CPU内部、内存、端口)

    1. 数据容器 计算机的基本功能是对数据进行处理,处理的方式有:读取.写入.运算. 所处理的数据可以存在于三个地方:CPU内部.内存.端口. 汇编代码中表达数据的位置方式: a 立即数         ...

  7. 接连三个百度副总裁都栽在“违纪”、“腐败”上,这是怎么了?

    接连三个百度副总裁都栽在"违纪"."腐败"上,这是怎么了?(转) 百度这几年流年不利,内忧外患.有跌出BAT第一梯队的迹象不说,还一堆麻烦缠身.很多商业观察家. ...

  8. 数据链路层的有那三个基本问题?为什么都必须加以解决?

    数据链路层的有那三个基本问题?为什么都必须加以解决? 数据链路层的三个基本问题:封装成帧.透明传输.差错检测. ⑴封装成帧就是在一段数据前后分别添加首部和尾部.接收端以便从收到的比特流中识别帧的开始与 ...

  9. c语言中for循环逗号表达式,c语言中for循环中()里的三个表达式分别省略都

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:c语言中for循环 中()里的三个表达式分别省略都是什么意思?回答:将参加循环的语句括起来:末尾循环体){ 中间循环体: } 其中, ...

最新文章

  1. 如何同步更新 Github 上 Fork 的项目?
  2. 2021-04-21--中标麒麟-yum源修改
  3. (原)各种输入框美化
  4. TensorFlow:实战Google深度学习框架(六)图像数据处理
  5. 微小宝公众号排行榜_排行榜 | 山西省高校、高职中专微信公众号周数据排行榜...
  6. Kylin 2.0升级总结
  7. “驱网核心技术丛书”创作团队访谈
  8. java swing如何设置jtextarea对齐方式_【爵士钢琴】一次搞懂爵士经典Swing节奏!
  9. iOS 给webView加进度条(WKWebView)
  10. Atom:一些有用的Packages和插件
  11. 大型计算机grads使用,win10中GRADS出现FAST_CWD pointer错误的详细解决方法
  12. 功率因素校正(PFC)技术!
  13. 【TWVRP】蚁群算法求解带时间窗的车辆路径规划问题【含Matlab源码 921期】
  14. ‘xxx‘ is missing in props validation
  15. 【RocketMQ】从零搭建一套RocketMQ监控(rocketmq-exporter + Prometheus + Grafana)
  16. iOS app url scheme跳转到淘宝商品详情页 唤醒app
  17. 云信api_云信Web SDK API文档
  18. OVN Southbound DB简介及其相关命令示例
  19. 《论语》原文及其全文翻译 学而篇7
  20. python matlab 多条曲线 单位_【基础篇】MATLAB科研制图常用代码命令

热门文章

  1. json.dumps和loads方法
  2. 阿里云ECS主机自定义进程监控
  3. Django基础之Model创建表
  4. odoo8.0+PyCharm4.5开发环境配置
  5. Fedora的ifconfig命令
  6. asp.net的几种简单连接数据库方法
  7. language wars
  8. 四大原因可能让你拿到订单
  9. ArcGIS API for Silverlight开发
  10. [51nod]1284 2 3 5 7的倍数(容斥原理)