tractor 拖拉机
来源:互联网 发布:养宠物猪 知乎 编辑:程序博客网 时间:2024/04/20 08:31
#include<stdio.h>#include<iostream>#include<queue>#include<memory.h>using namespace std;const int MAX_M = 1002;int dx[]={0,0,1,-1};int dy[]={1,-1,0,0};bool G[MAX_M][MAX_M];bool used[MAX_M][MAX_M];int f[MAX_M][MAX_M];int N;struct node{ int x,y; int c;}head,next;bool operator<(struct node a,struct node b){ return a.c>=b.c;}priority_queue<struct node> Q;int Sx,Sy;int Tx,Ty;int ans;void init(){ int i,j; int x,y; memset(G,false,sizeof(G)); memset(f,1,sizeof(f)); memset(used,true,sizeof(used)); Tx=Ty=0; scanf("%d %d %d",&N,&Sx,&Sy); for(i=1;i<=N;i++) { scanf("%d %d",&x,&y); G[x][y]=true; } f[Sx][Sy]=0; head.x=Sx; head.y=Sy; head.c=0; Q.push(head);}void work(){ while (!Q.empty()) { head=Q.top(); Q.pop(); if (head.x==Tx&&head.y==Ty) { ans=head.c; break; } if(used[head.x][head.y]) { used[head.x][head.y]=false; int i; for (i=0;i<4;i++) { next.x=head.x+dx[i]; next.y=head.y+dy[i]; if (next.x>=0&&next.x<MAX_M&&next.y>=0&&next.y<MAX_M&&used[next.x][next.y]) { next.c=head.c+G[next.x][next.y]; if (next.c<f[next.x][next.y]) { f[next.x][next.y]=next.c; Q.push(next); } } } } }}void put(){ printf("%d",ans);}int main(){ freopen("tractor.in","r",stdin); freopen("tractor.out","w",stdout); init(); work(); put(); return 0;}
老师讲过的,不重复。
- tractor 拖拉机
- tractor quiz
- 拖拉机比赛规则
- [湖大热身赛]Tractor(数学?)
- 拖拉机小程序
- 说说两副牌拖拉机
- 奔驰 宝马 拖拉机
- 拖拉机游戏玩法
- 以拖拉机论重载
- Android实用的任务管理器—tractor
- 拖拉机大战贺岁版发布
- 游戏更新-拖拉机&升级 Android
- 拖拉机判定C语言程序
- 联想拖拉机逆向之旅
- zz 超级拖拉机 4.02 破解算法分析
- 拖拉机大战1.1.0.320发布,更多新功能
- 拖拉机大战更新了,更多新功能
- MFC写的单人拖拉机游戏程序
- 硅谷之所以骨子里与众不同,是因为有这七件事
- 根据PID查询正在执行的SQL语句
- 导弹拦截 动态规划
- 不必太羡慕别人
- 基于STK的卫星通信视景仿真
- tractor 拖拉机
- Android使用GridView实现日历功能(详细代码)
- EClipse for PHP 中文乱码问题
- 杭电 2563
- [模拟]Comfort
- oracle 10g 获得dump文件的名称和位置
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
- linux下socket编程再改进版
- ASP.NET相关控件GridView和DetailsView的使用