首页 > 代码库 > 好奇怪的游戏
好奇怪的游戏
洛谷P1747 好奇怪的游戏
马走日翻版,注意方向不要打错,还有就是题目要求最小,要加min。
#include<bits/stdc++.h> using namespace std; int x[]={-2,-2,-1,-1,-2,-2, 1, 2, 2,2,2,1}; int y[]={-1,-2,-2, 2, 2, 1,-2,-2,-1,1,2,2}; queue<int>q1; queue<int>q2; int xi,yi,xj,yj; int o=true,k=true; int a[100][100]; int ans=999999999; int an=999999999; int main() { cin>>xi>>yi>>xj>>yj; int t=0; q1.push(1),q2.push(1); while(!q1.empty()&&(o||k)) { int xx=q1.front(); int yy=q2.front(); for(int i=0;i<12;i++) { if(yy+y[i]>0&&xx+x[i]>0&&xx+x[i]<100&&yy+y[i]<100&&((a[xx+x[i]][yy+y[i]]>a[xx][yy]+1)||(a[xx+x[i]][yy+y[i]]==0))) { a[xx+x[i]][yy+y[i]]=a[xx][yy]+1; if(xx+x[i]==xi&&yy+y[i]==yi&&o) { // cout<<a[xx][yy]+1<<endl; ans=min(ans,a[xx+x[i]][yy+y[i]]); o=false; } if(xx+x[i]==xj&&yy+y[i]==yj&&k) { // cout<<a[xx][yy]+1<<endl; an=min(an,a[xx+x[i]][yy+y[i]]); k=false; } q1.push(xx+x[i]); q2.push(yy+y[i]); } } q1.pop(); q2.pop(); } cout<<ans<<endl; cout<<an<<endl; return 0; }
好奇怪的游戏
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。