http://www.lydsy.com/JudgeOnline/problem.php?id=1193

大范围贪心,小范围宽搜。

膜拜大神

http://blog.csdn.net/u012915516/article/details/47447703

  1. #include<cstdio>
  2. #include<cstdlib>
  3. #include<iostream>
  4. #include<fstream>
  5. #include<algorithm>
  6. #include<cstring>
  7. #include<string>
  8. #include<cmath>
  9. #include<queue>
  10. #include<stack>
  11. #include<map>
  12. #include<utility>
  13. #include<set>
  14. #include<bitset>
  15. #include<vector>
  16. #include<functional>
  17. #include<deque>
  18. #include<cctype>
  19. #include<climits>
  20. #include<complex>
  21. //#include<bits/stdc++.h>适用于CF,UOJ,但不适用于poj
  22.  
  23. using namespace std;
  24.  
  25. typedef long long LL;
  26. typedef double DB;
  27. typedef pair<int,int> PII;
  28. typedef complex<DB> CP;
  29.  
  30. #define mmst(a,v) memset(a,v,sizeof(a))
  31. #define mmcy(a,b) memcpy(a,b,sizeof(a))
  32. #define fill(a,l,r,v) fill(a+l,a+r+1,v)
  33. #define re(i,a,b) for(i=(a);i<=(b);i++)
  34. #define red(i,a,b) for(i=(a);i>=(b);i--)
  35. #define ire(i,x) for(typedef(x.begin()) i=x.begin();i!=x.end();i++)
  36. #define fi first
  37. #define se second
  38. #define m_p(a,b) make_pair(a,b)
  39. #define SF scanf
  40. #define PF printf
  41. #define two(k) (1<<(k))
  42.  
  43. template<class T>inline T sqr(T x){return x*x;}
  44. template<class T>inline void upmin(T &t,T tmp){if(t>tmp)t=tmp;}
  45. template<class T>inline void upmax(T &t,T tmp){if(t<tmp)t=tmp;}
  46.  
  47. const DB EPS=1e-;
  48. inline int sgn(DB x){if(abs(x)<EPS)return ;return(x>)?:-;}
  49. const DB Pi=acos(-1.0);
  50.  
  51. inline int gint()
  52. {
  53. int res=;bool neg=;char z;
  54. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  55. if(z==EOF)return ;
  56. if(z=='-'){neg=;z=getchar();}
  57. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  58. return (neg)?-res:res;
  59. }
  60. inline LL gll()
  61. {
  62. LL res=;bool neg=;char z;
  63. for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());
  64. if(z==EOF)return ;
  65. if(z=='-'){neg=;z=getchar();}
  66. for(;z!=EOF && isdigit(z);res=res*+z-'',z=getchar());
  67. return (neg)?-res:res;
  68. }
  69.  
  70. const int dx[]={,,,,-,-,-,-};
  71. const int dy[]={,-,,-,,-,,-};
  72.  
  73. int sx,sy,ex,ey,x,y;
  74. int cnt;
  75.  
  76. int vis[][];
  77. #define vis(i,j) vis[i+1000][j+1000]
  78.  
  79. int head,tail;
  80. PII que[];
  81.  
  82. int main()
  83. {
  84. freopen("bzoj1193.in","r",stdin);
  85. freopen("bzoj1193.out","w",stdout);
  86. int i;
  87. sx=gint();sy=gint();ex=gint();ey=gint();
  88. x=ex-sx;y=ey-sy;
  89. x=abs(x);y=abs(y);
  90. cnt=;
  91. while(x+y>=)
  92. {
  93. if(x<y)swap(x,y);
  94. if(x->*y)x-=;else x-=,y-=;
  95. cnt+=;
  96. }
  97. mmst(vis,-);
  98. que[head=tail=]=PII(,);
  99. vis(,)=;
  100. while(vis(x,y)==-)
  101. {
  102. int ax=que[head].fi,ay=que[head].se;head++;
  103. re(i,,)
  104. {
  105. int bx=ax+dx[i],by=ay+dy[i];
  106. if(vis(bx,by)==-)
  107. {
  108. que[++tail]=PII(bx,by);
  109. vis(bx,by)=vis(ax,ay)+;
  110. if(vis(x,y)!=-)break;
  111. }
  112. }
  113. }
  114. cnt+=vis(x,y);
  115. PF("%d\n",cnt);
  116. return ;
  117. }

bzoj 1193的更多相关文章

  1. bzoj 1193 贪心

    如果两点的曼哈顿距离在一定范围内时我们直接暴力搜索就可以得到答案,那么开始贪心的跳,判断两点横纵坐标的差值,差值大的方向条2,小的条1,不断做,直到曼哈顿距离较小时可以暴力求解. 备注:开始想的是确定 ...

  2. bzoj 1193 贪心+bfs

    1193: [HNOI2006]马步距离 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2015  Solved: 914[Submit][Statu ...

  3. BZOJ 1193 [HNOI2006]马步距离:大范围贪心 小范围暴搜

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1193 题意: 给定起点(px,py).终点(sx,sy).(x,y < 100000 ...

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

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 原问题可以等价为两个点. 然后其中一个点要移动到另外一个点. 那么我们可以把左下角那个点(对称总是可以得到一个点在左下角)放在原点的 ...

  5. BZOJ 1193 搜索+贪心

    预处理出100*100以内的最优解 贪心走日 判断是0*4还是2*4 搞定 //By SiriusRen #include <queue> #include <cstdio> ...

  6. BZOJ 题解continue

    1041 圆上的整点 暴力枚举 会超时 这道题很像之前一次noip模拟题(当时的我还太水了(虽然现在也很水)) x2+y2=R2 考虑变型 x2=(R+y)(R-y) int d=gcd(R,y) i ...

  7. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  8. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  9. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

随机推荐

  1. hadoop 常用命令

    hdfs dfs -mkdir -p /usr/input/hot hdfs dfs -ls / hdfs dfs -ls /usr/input hdfd dfs -cat /usr/ouput/ho ...

  2. 【转】windows下vs2008/2010+opencv2.2开发环境搭建

    版权声明:本文为博主原创文章,未经博主允许不得转载. 1.下载安装Cmake 2.用cmake配置opencv2.2,然后编译,安装 3. 在vs2008中配置opencv2.2 4.Demo 1.下 ...

  3. AngularJs学习笔记5——自定义服务

    前面整理了AngularJs双向数据绑定和自定义指令的相关内容,从手册上看也知道,ng部分还包括过滤器和函数,以及服务等. 过滤器:filter,就是对数据进行格式化,注意管道格式,例如: {{表达式 ...

  4. Jsp详解

    1Jsp基础 1.1 Jsp引入 Servlet的作用: 用java语言开发动态资源的技术!!! Jsp的作用:用java语言(+html语言)开发动态资源的技术!!! Jsp就是servlet!!! ...

  5. 互联网程序设计c++

    地址:ftp.sist.stdu.edu.cn用户名:lzh_hlw20133密码:lzhstdftp端口:2014

  6. jdk-tomcat环境变量设置

    1.export命令直接在shell下设置 export JAVA_HOME=/home/yn4a/jdk1.6.0_16export PATH=$JAVA_HOME/bin:$PATHexport ...

  7. ComboBox( 下拉列表框)

    一. 加载方式//class 加载方式<select id="box" class="easyui-combobox" name="box&qu ...

  8. angularJS环境安装

    第一步: 安装node.js,进入node.js官网(http://nodejs.org/)下载安装相应的node.js版本:

  9. eclipse中安装genymotion

    在eclipse中安装genymotion.安装genymotion需要先安装virtualbox.选择Help选项中的install new software 然后点击进去点击ADD,在locati ...

  10. list类型for遍历

    package cn.stat.p9.map.demo; import java.util.ArrayList; public class Listfor { /** * @param args */ ...