名字好评
by libra9z @ 2019-11-11 22:54:09
头像也好评
by libra9z @ 2019-11-11 22:54:18
。。。
by 窃·格瓦拉 @ 2019-11-11 23:03:31
代码中有个"us"请忽略
by 窃·格瓦拉 @ 2019-11-11 23:04:02
```
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define R register
const int N=105;
int m,n,ans;
int a[N][N];
int dx[6]={-1,1,0,0},dy[6]={0,0,-1,1};
bool f[N][N];
inline void Init(){
memset(a,-1,sizeof(a));
memset(f,0,sizeof(f));
scanf ("%d%d",&m,&n);
int x,y,c;
ans=99999999;
for (R int i=1;i<=n;++i){
scanf("%d%d%d",&x,&y,&c);
a[x][y]=c;
}
return;
}
inline void dfs(int x,int y,int coin,int color,int use){
f[x][y]=1;
if (x==m&&y==m){
ans=min(ans,coin);
return;
}
int p,q;
for (R int i=0;i<4;++i){
p=x+dx[i],q=y+dy[i];
if (p<1||q<1||p>m||q>m) continue;
if (f[p][q]==1) continue;
if (a[x][y]!=a[p][q]&&a[p][q]!=-1){
dfs(p,q,coin+1,a[p][q],0);
}else if (a[x][y]==a[p][q]&&a[p][q]!=-1){
dfs(p,q,coin,a[p][q],0);
}else if (use==0&&a[p][q]==-1){
dfs(p,q,coin+2,a[x][y],1);
}else if (use==1&&a[p][q]==-1){
continue;
}
}
}
inline void out(){
if (ans==99999999) printf("-1\n");
else printf("%d\n",ans);
return;
}
int main(){
Init();
dfs(1,1,0,a[1][1],0);
out();
return 0;
}
```
by 窃·格瓦拉 @ 2019-11-11 23:04:31
~~快去问问蔡徐坤~~(逃
by _Fontainebleau_ @ 2019-11-11 23:05:30
@[菜♂虚♂鲲](/user/216349) thank you sir
by HeartBlock_Love @ 2019-11-11 23:07:41
@[菜♂虚♂鲲](/user/216349) 感觉不是你的码风
by HeartBlock_Love @ 2019-11-11 23:09:49
@[无可牵挂](/user/177796) 你跑过来干肾
by 窃·格瓦拉 @ 2019-11-11 23:10:08
@[菜♂虚♂鲲](/user/216349) 来干
by HeartBlock_Love @ 2019-11-11 23:11:12