1193: [HNOI2006]马步距离

【题目描述】
传送门

【题解】

大范围贪心,然后小范围BFS,为了答案准确,尽量使这个小范围大,这题100就可以了。

代码如下

#include<queue>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int f[8][2]={{1,2},{2,1},{-1,2},{-2,1},{1,-2},{2,-1},{-1,-2},{-2,-1}};
int x,y,ans;
bool vis[105][105];
struct xcw{int x,y,t;};
queue<xcw> que;
int ads(int x){return x<0?-x:x;}
bool check(int x,int y){if(x<0||x>100||y<0||y>100)return 0;return !vis[x][y];}
void Work(int x,int y,int t){vis[x][y]=1;que.push((xcw){x,y,t});}
int BFS(int x,int y){que.push((xcw){x,y,0});vis[x][y]=1;while(!que.empty()){x=que.front().x,y=que.front().y;int t=que.front().t;que.pop();for(int i=0;i<8;i++)if(check(x+f[i][0],y+f[i][1])){Work(x+f[i][0],y+f[i][1],t+1);if(x+f[i][0]==50&&y+f[i][1]==50) return t+1;}}
}
int main(){int x1,y1;scanf("%d%d%d%d",&x,&y,&x1,&y1);x=ads(x-x1);y=ads(y-y1);while(x+y>=50){if(x<y) swap(x,y);if(x-4>=2*y) x-=4;else x-=4,y-=2;ans+=2;}x+=50,y+=50;if(x<y) swap(x,y);printf("%d\n",BFS(x,y)+ans);return 0;
}

转载于:https://www.cnblogs.com/XSamsara/p/9190119.html

BZOJ 1193: [HNOI2006]马步距离【贪心+搜索】相关推荐

  1. bzoj 1193: [HNOI2006]马步距离(贪心+BFS)

    1193: [HNOI2006]马步距离 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2117  Solved: 953 [Submit][Sta ...

  2. BZOJ 1193 HNOI2006 马步距离

    看了题解的... 因为只想了BFS的思路,但是x,y的范围太大了. BFS一定会爆空间的. 喵了看了看题解,发现还是我too young too simple~ 不水了,总结题目思路: 首先题目x,y ...

  3. 1193: [HNOI2006]马步距离

    题目链接 题目大意:求出从点 p 到点 s 至少需要经过多少次马步移动 题解:直接搜会T,贪心会WA--正解是大范围贪心,小范围暴力--有种取长补短的感觉--Orz 我的收获:乱搞出奇迹-- #inc ...

  4. 【BZOJ 1193】 [HNOI2006]马步距离

    1193: [HNOI2006]马步距离 Time Limit: 10 Sec   Memory Limit: 162 MB Submit: 919   Solved: 419 [ Submit][ ...

  5. P2060 [HNOI2006]马步距离

    P2060 [HNOI2006]马步距离 数据到百万级别,明显爆搜不行,剪枝也没法剪.先打表.发现小数据内步数比较受位置关系影响,但数据一大就不影响了.大概搜了一个20*20的表把赋值语句打出来.判断 ...

  6. [Hnoi2006]马步距离

    1285: [Hnoi2006]马步距离 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 36  Solved: 16 [Submit][Status] ...

  7. BZOJ1193: [HNOI2006]马步距离

    易水人去,明月如霜. Description 在国际象棋和中国象棋中,马的移动规则相同,都是走"日"字,我们将这种移动方式称为马步移动.如图所示, 从标号为 0 的点出发,可以经过 ...

  8. bzoj1193 [HNOI2006]马步距离 构造+枚举

    首先肯定不是直接按xy跳,因为会有几个特殊位置: (0,0)到(1,1) (0,0)到(1,0) (0,0)到(4,4) 正常逼近是那长距离跳2,短距离跳1,但在这几个类似的点上是不行的 首先,一定会 ...

  9. [BZOJ 1193] 马步距离

    Link:https://www.lydsy.com/JudgeOnline/problem.php?id=1193 Solution: 能立刻看出贪心算法,但发现在小数据时明显不适用 于是我们采取大 ...

最新文章

  1. Kotlin for 循环使用
  2. 怎样在bug管理上节省时间
  3. VScode 无法创建文件或者无法保存文件
  4. 转:FMS 3.5之Hello World!
  5. HTML5:一些部件
  6. xmldocument如何创建一个不带结尾的节点_LDF文件是个啥?如何创建一个LDF文件
  7. idea配置mysql失败_IDEA配置数据库连接失败的问题
  8. 洛谷试炼场一句话题解
  9. iOS平台上aa(见缝插针)游戏的简易实现
  10. linux下TF卡测试寿命的测试程序编写
  11. 【Python】WARNING: The script xx.exe is installed in xxdirectory which is not on PATH.
  12. mysql cbrt函数_Hive FUNCTIONS函数
  13. Boston Dynamics实验:机器狗对垒真小狗
  14. 【Web】1326- 深入浅出 Web Audio API
  15. QQ、YY与webRTC回声消除效果对比分析与展望
  16. IE的浏览器模式和文档模式
  17. 超低功耗研发-STM32L151C8T6芯片(三)RTC自动唤醒机制
  18. 怎么将.tex文件转换成pdf
  19. Java反射09 : 参数Parameter学习示例
  20. 正确理解闭包及闭包使用场景

热门文章

  1. 计算机组成原理中dubs是什么意思,计算机组成原理》课程设计报告.docx
  2. 服务器装哪个操作系统好,服务器装哪个操作系统好
  3. flask 配置静态文件模板文件
  4. BiquadFilterNode
  5. TensorFlow tf.keras.backend.ctc_batch_cost
  6. Pandas将列表(List)转换为数据框(Dataframe)
  7. ifconfig没有ip地址_虚拟机创建后该如何获取IP地址并访问互联网实用教程
  8. Windows学习总结(5)——【IIS建站】Windows10怎么打开站点服务?
  9. php小小通讯录,2009年小学信息技术优质课一等奖教学设计四上《小小通讯录》...
  10. 小学计算机课评价方案,小学信息技术课堂评价方法的研究