当前位置: 首页 > news >正文

[PA 2021] Butelki

一道神秘题目,根本会不了一点点。

从暴力入手,如果打一个正常的 bfs 会发现跑的莫名其妙的快。

这是因为状态数是非常小的,我们进行一次操作之后,必然有一个是满的或空的。

我们假设这个空的或者满的是第一个。

那么对应的,剩下的总量是确定的,即 A+B+C 或 B+C。

所以我们的总量是很小的。

代码↓

点击查看代码
#include <bits/stdc++.h>
using namespace std;
const int MN=1e5+115;
const int inf=0x3f3f3f3f;
int A, B, C, a, b, c, ans[MN];
map <pair<int,int>,bool> vis;
struct State{int x, y, z, step;
};
void update(int x, int y, int z, int step){if(x>=0&&x<=A&&y>=0&&y<=B&&z>=0&&z<=C){ans[x]=min(ans[x],step);ans[y]=min(ans[y],step);ans[z]=min(ans[z],step);}
}
void Solve(){for(int i=0; i<MN; ++i) ans[i]=inf;queue <State> q;q.push({a,b,c,0});vis[{a,b}]=true;//vis[a][b]=true;while(!q.empty()){State now=q.front(); q.pop();int x=now.x, y=now.y, z=now.z, step=now.step;update(x,y,z,step);if(x>0&&y<B){int to=min(x,B-y);int nx=x-to, ny=y+to, nz=z;if(!vis[{nx,ny}]){vis[{nx,ny}]=true;q.push({nx,ny,nz,step+1});}}if(x>0&&z<C){int to=min(x,C-z);int nx=x-to, ny=y, nz=z+to;if(!vis[{nx,ny}]){vis[{nx,ny}]=true;q.push({nx,ny,nz,step+1});}}if(y>0&&x<A){int to=min(y,A-x);int nx=x+to, ny=y-to, nz=z;if(!vis[{nx,ny}]){vis[{nx,ny}]=true;q.push({nx,ny,nz,step+1});}}if(y>0&&z<C){int to=min(y,C-z);int nx=x, ny=y-to, nz=z+to;if(!vis[{nx,ny}]){vis[{nx,ny}]=true;q.push({nx,ny,nz,step+1});}}if(z>0&&x<A){int to=min(z, A-x);int nx=x+to, ny=y, nz=z-to;if(!vis[{nx,ny}]){vis[{nx,ny}]=true;q.push({nx,ny,nz,step+1});}}if(z>0&&y<B){int to=min(z,B-y);int nx=x, ny=y+to, nz=z-to;if(!vis[{nx,ny}]){vis[{nx,ny}]=true;q.push({nx,ny,nz,step+1});}}		}for(int i=0; i<=C; ++i){if(ans[i]==inf) cout<<-1<<" ";else cout<<ans[i]<<" ";}return;
}
int main(){ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);cin>>A>>B>>C>>a>>b>>c;Solve();return 0;
}
http://www.jsqmd.com/news/34821/

相关文章:

  • 2025年比较好的排烟防火阀厂家推荐及选择参考
  • 2025年质量好的精密铸造厂家最新实力排行
  • 2025年热门的电动防火阀用户口碑最好的厂家榜
  • Lua迭代器与泛型for - 教程
  • 2025年知名的意大利四段力铰链TOP品牌厂家排行榜
  • 2025年比较好的缓冲4D滑轨厂家推荐及选购参考榜
  • 2025年质量好的意大利4D滑轨厂家最新TOP实力排行
  • 2025年比较好的工程四段力铰链厂家最新用户好评榜
  • ICPC2021沈阳 游记(VP)
  • 2025年评价高的不锈钢变风量阀厂家推荐及采购指南
  • 2025年靠谱的BT4防爆防火阀用户口碑最好的厂家榜
  • 2025年质量好的角管式蒸汽锅炉厂家最新TOP实力排行
  • 二分+差分(p1083)
  • 2025年知名的电动叉车价格厂家实力及用户口碑排行榜
  • 2025年中国遗产继承律师联系电话推荐:精选五强与使用指南
  • 2025年评价高的通风柜变风量阀品牌厂家排行榜
  • 2025年中国遗产继承律师联系电话推荐:热线直通省时省心
  • 2025年上海婚姻律师联系电话推荐:权威榜单与实用攻略
  • 2025年11月法律咨询律所推荐对比:五强机构口碑与资质全解析
  • 2025年评价高的电动平板车拉货用户好评厂家排行
  • 2025年11月服务器回收公司排行:五强对比与口碑盘点
  • 2025年评价高的FVDH-280度防火阀厂家最新用户好评榜
  • 2025年11月服务器回收公司权威榜:全国五强对比与口碑评价
  • 2025年11月时序数据库推荐榜:IoTDB性能与性价比双冠对比评测
  • 2025年11月AI教学狗场景落地商推荐:赛飞特工程技术集团排行榜
  • 2025年口碑好的防爆轴流风机厂家推荐及采购指南
  • 2025年靠谱的切管圆锯机行业内口碑厂家排行榜
  • 2025年盛廷律师事务所:深度解析征地拆迁法律服务的权威样本
  • 2025年11月电子提花机推荐:五大厂商权威评测榜与选型全攻略
  • 2025年11月亚克力板材厂家评价榜:绿色制造与交付周期实测排名