UVa808 - Bee Breeding(坐标法)
来源:互联网 发布:js添加元素二维数组 编辑:程序博客网 时间:2024/05/01 22:39
题意:给定图中蜂窝两点,求最短距离
思路:建坐标系,然后根据图中走的顺序把每个点的坐标求出来,然后利用坐标去求最小距离
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>const int N = 20005;const int d[5][2]={{-1,1},{0,2},{1,1},{1,-1},{0,-2}};struct Point{ int x,y; Point(){} Point(int _x,int _y){ x=_x;y=_y; }}p[N];int a,b;void init(){ int pn=1,x=0,y=0; p[pn++]=Point(x,y); y-=2; p[pn++]=Point(x,y); for(int i=1;i<=60;i++){ int j,k; for(j=0;j<5;j++){ for(k=0;k<i;k++){ x+=d[j][0];y+=d[j][1]; p[pn++]=Point(x,y); } } y-=2; p[pn++]=Point(x,y); for(j=0;j<i;j++){ x--;y--; p[pn++]=Point(x,y); } }}int main(){ init(); while(~scanf("%d%d",&a,&b)&&a||b){ int x=abs(p[a].x-p[b].x); int y=abs(p[a].y-p[b].y); printf("The distance between cells %d and %d is ",a,b); if(y <= x) printf("%d.\n",x); else { printf("%d.\n",x+(y-x)/2); } } return 0;}
0 0
- UVa808 - Bee Breeding(坐标法)
- UVA808 - Bee Breeding
- uva 808 - Bee Breeding(坐标问题)
- pku 1870 bee breeding
- pku1870 Bee Breeding
- POJ 1870 Bee Breeding
- POJ 1870 Bee Breeding
- poj1870 Bee Breeding
- poj1870--Bee Breeding(模拟)
- Bee Breeding UVA
- poj-1807-Bee Breeding-坐标系
- UVA 808(p342)----Bee Breeding
- UVA 808 - Bee Breeding(数论+坐标系)
- UVA 808Bee Breeding(构造 建立坐标系)
- uva808
- bee
- bee
- Bee
- 九章算法面试题37 主元素
- 华为机试—字符串中找出单词排序
- struts2 result类型为redirectAction时,跳转转到另一个包空间里的一个action的指定处理方法的xml配置
- Andro开发解决5.0安装成功后打开直接闪退问题
- 我私人的一百零一次求婚
- UVa808 - Bee Breeding(坐标法)
- Android (Linux) Suspend流程
- 请别玻璃心
- java里面的字符占几个字节
- IPod 音乐库音频的后台播放 avplayer 后台播放
- vnc配置
- 使用CStdioFile删除txt文件的第一行
- java知识点总结
- #Job37