83.3分求条
2026-08-07 14:21:22
发布于:浙江
15阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
long long mod;
long long s,t;
long long a,b,c;
long long w[3000004];
int vis[3000005];
int main(){
cin>>mod>>s>>t>>a>>b>>c;
cin>>w[1]>>w[2]>>w[3];
queue<pair<long long,long long>>q;
q.push({s,0});
//vis[s]=1;
long long ans=1e18;
while(q.size()){
long long now=q.front().first;
long long co=q.front().second;
q.pop();
//cout<<now<<" "<<co<<endl;
if(now==t){
ans=min(ans,co);
}
if(vis[now])continue;
vis[now]=1;
long long x=(now+a)%mod;
q.push({x,co+w[1]});
x=(now-b+mod)%mod;
q.push({x,co+w[2]});
x=now*c%mod;
q.push({x,co+w[3]});
}
if(vis[t]){
cout<<ans;
}else{
cout<<-1;
}
return 0;
}
全部评论 2
一个人提交十二次这谁绷得住
1周前 来自 浙江
1惹我绷绷强,绷你没商量
1周前 来自 浙江
0轻松绷住,悠闲绷住,自在绷住,愉快绷住,舒适绷住,畅快绷住,惬意绷住,闲适绷住,愉悦绷住,舒坦绷住,放松绷住,从容绷住,淡定绷住,坦然绷住,轻便绷住,轻巧绷住,轻盈绷住,轻捷绷住,轻闲绷住,清闲绷住,闲散绷住
1周前 来自 浙江
1
ok我过了
#include<bits/stdc++.h> using namespace std; long long mod; long long s,t; long long a,b,c; long long w[3000004]; long long vis[3000005]; int main(){ memset(vis,0x3f,sizeof vis); cin>>mod>>s>>t>>a>>b>>c; cin>>w[1]>>w[2]>>w[3]; queue<long long>q; q.push(s); vis[s]=0; while(q.size()){ long long now=q.front(); q.pop(); long long x=(now+a)%mod; if(vis[now]+w[1]<vis[x]){ q.push(x); vis[x]=vis[now]+w[1]; } x=(now-b+mod)%mod; if(vis[now]+w[2]<vis[x]){ q.push(x); vis[x]=vis[now]+w[2]; } x=now*c%mod; if(vis[now]+w[3]<vis[x]){ q.push(x); vis[x]=vis[now]+w[3]; } } if(vis[t]<1e15){ cout<<vis[t]; }else{ cout<<-1; } return 0; }1周前 来自 浙江
0









有帮助,赞一个