UnityExplorer高效调试实战指南:7步掌握Unity游戏运行时调试核心技术

核心内容摘要

告别时间不同步!手把手教你用Windows自带工具搭建NTP服务器
风险操作系统:当保险消失在生活里,它才真正无处不在

老旧Mac升级方案:非官方macOS兼容性破解技术指南

【双端队列bfs】笔记而已推荐好文推荐视频双端队列bfs是解决

bfs最常用的一种手段

bfs就是边值只有0或1两种情况时用的bfs一般是求起点到终点所用边值总值最小为多少用例题更好说明

拖拉机这里在通过没有干草块的位置时所用边值为零通过有干草块位置时边值为1要求需要移除最少的数量那么一定是能不移就不移最好实在需要移再移换句话说就是优先走没有干草块的位置当走完没有干草块的位置时再走有干草块的位置此时可以用双端队列deque来实现将没有干草块的压入队头有干草块的压入队尾每次只用队头元素就能实现先走边值为0再走边值为1不同于朴素bfs

bfs不需要判重数组一个点可能多次经过但是只有在值更小时才需要更新代码#includebits/stdc.h//#define int long longusingnamespacestd;boolg[1015][1015];intdx[]{1,-1,0,0};intdy[]{0,0,1,-1};intdis[1015][1015];structnode{intx,y;};dequenodedq;intn,x,y;voidbfs(intx,inty){dq.push_front((node){x,y});while(dq.size()){intaxdq.front().x,aydq.front().y;dq.pop_front();for(inti0;i4;i){intsxaxdx[i],syaydy[i];if(sx0sx1010sy0sy

{if(dis[sx][sy]dis[ax][ay]g[sx][sy])continue;//只有值更小时才需要更新if(!g[sx][sy])dq.push_front((node){sx,sy}),dis[sx][sy]dis[ax][ay];if(g[sx][sy])dq.push_back((node){sx,sy}),dis[sx][sy]dis[ax][ay]1;if(!sx!sy)return;}}}}voidsolve(){cinnxy;while(n--){inta,b;cinab;g[a][b]1;}memset(dis,1e6,sizeof(dis));dis[x][y]0;bfs(x,y);coutdis[0][0]endl;}signedmain(){intt1;//cint;while(t--){solve();}return0;}

鉴黄师破解版APP安装-鉴黄师破解版APP安装应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123