8.6胖胖的牛牛(每日一题)

#include<bits/stdc++.h>
using namespace std;
typedef pair<int ,int >PII;
const int maxn=1e5;
const int max1=105;
int dx[4]= {1,0,-1,0},dy[4]= {0,1,0,-1};
int dist[maxn];
vector<int>edges[maxn];
char mp[max1][max1];
bool vis[maxn];
int e[maxn],ne[maxn],h[maxn],w[maxn],idx;
int st,ed;
map<pair<int ,int >,int >mo;
int ans=0x3f3f3f3f,cnt=1;
void add(int a,int b,int c)
{
e[idx]=b;w[idx]=c;ne[idx]=h[a];h[a]=idx++;
}
void dijkstra(int start)
{
memset(dist, 0x3f,sizeof dist); //初始化距离 0x3f代表无限大
memset(vis, false,sizeof vis);
dist[start]=0; //第一个点到自身的距离为0
priority_queue<PII,vector<PII>,greater<PII>>mo;
mo.push({0,start});
while(mo.size())
{
auto t=mo.top();
mo.pop();
int ver=t.second,distance=t.first;
if(vis[ver]) continue;
vis[ver]=1;
for(int i=h[ver];i!=-1;i=ne[i])
{
int j=e[i];
if(dist[j]>w[i]+distance)
{
dist[j]=w[i]+distance;
mo.push({dist[j],j});
}
}
}
for(int dd=0;dd<=3;dd++)
{
ans=min(dist[ed+dd],ans);
}
}
int main()
{
int n,m,i,j,t;
memset(h,-1,sizeof h);
cin>>n;getchar();
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>mp[i][j];
int x1=i,x2=j;
if(x1<0||x1>=n||x2<0||x2>=n||mp[x1][x2]=='x') continue;
if(mp[i][j]=='A') st=cnt;
if(mp[i][j]=='B') ed=cnt;
mo[{x1,x2}]=cnt;
cnt+=4;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(mp[i][j]=='x') continue;
for(int k=0;k<4;k++)
{
int x1=i+dx[k],x2=j+dy[k];
if(x1<0||x1>=n||x2<0||x2>=n||mp[x1][x2]=='x') continue;
int d1=mo[{i,j}],d2=mo[{x1,x2}];
for(int dd=0;dd<=3;dd++)
{
int xx=d1+dd,yy=d2+k;
if(dd==k)add(xx,yy,0),add(yy,xx,0);
else add(xx,yy,1),add(yy,xx,1);
}
}
}
}
for(int dd=0;dd<=3;dd++)
{
int bh=st+dd;
dijkstra(bh);
}
if(ans==0x3f3f3f3f){
cout<<-1<<endl;
}
else {
cout<<ans<<endl;
}
return 0;
}
相关推荐
牛牛数据处理器牛牛数据处理器
牛牛数据处理器牛牛数据处理器牛牛数据处理器
牛牛数据处理器
牛牛数据处理器 C3 是免费版本 免费的原因是本人身体不好,需要多休息,就把GOOGLE广告和软件注册二项有收入的砍掉, 只留下网投一项操作,软件回答今后只对原注册用户和网投客户负责,服务不周还请各位谅解 软件使用交流论坛地址:www.nn1133.com 或 www.nn1133.cn C3是原C2的基础上拆掉硬件检测代码而来,今后在C3平台上继续改进 由于论坛上传附件大小限于2M,软件的使用帮助部分请另外下载,解压后放进“使用帮助”文件夹里
牛牛播放器v8.9官方正式安装版
牛牛播放器是一款接过了某播的责任为广大宅男们造福,播放流畅、完全免费,是宅男宅女必备的视频播放器。 软件特色 免费 完全免费,下载直接运行后即可观看 流畅 播放流畅P2P传输,越多人看越流畅 灵活 具有灵活点播的功能,随点随看,时间自由掌握 丰富 海量电影、欧美片、日韩片、国内片高清播放 方便 软件占用空间极小,方便自由收藏 个性 支持全屏播放或设置,满足您个性偏好
牛牛算法java版,包含牛牛算法 结算配置自定义等,里面有测试类
包含牛牛算法 结算配置自定义等,里面有测试类,包含牛牛算法 结算配置自定义等,里面有测试类包含牛牛算法 结算配置自定义等,里面有测试类包含牛牛算法 结算配置自定义等,里面有测试类包含牛牛算法 结算配置自定义等,里面有测试类
6人通比牛牛+机器人+库存 代码
[通比牛牛] //刷新房间配置 Refresh= 1 ;是否刷新配置 //库存更新 RefreshStorage = 0 ;是否刷新库存 //胜率控制 WinRate=50 ;胜率控制 (1-100)数值越大胜率越高 推荐50-70 StorageStart=0 ;(库存起始值) StorageDeduct=0 ;(衰减值) StorageOff=0 StorageMax=1000 //机器人存款取款 RobotScoreMin=100000 ; 机器人的分数小于该值时执行取款 RobotScoreMax=1000000 ; 机器人的分数大于该值时执行存款 RobotBankGet=1000000 ; 取款最小数额(取款数是该值以上的一个随机数) RobotBankGetBanker=10000000 ; 取款最大数额(此数值一定要大于RobotBankGet) RobotBankStoMul=10 ; 存款百分比,百分之N Control=1 ;0 不控制 1 控制 Gameid=10000 Win=1 ;0 输 1:赢


