当前位置: 首页 > 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.rkmt.cn/news/43517.html

相关文章:

  • Lua迭代器与泛型for - 教程
  • 2025年比较好的缓冲4D滑轨厂家推荐及选购参考榜
  • 2025年质量好的意大利4D滑轨厂家最新TOP实力排行
  • 2025年比较好的工程四段力铰链厂家最新用户好评榜
  • 2025年评价高的不锈钢变风量阀厂家推荐及采购指南
  • 2025年靠谱的BT4防爆防火阀用户口碑最好的厂家榜
  • 2025年比较好的四轮电动叉车TOP品牌厂家排行榜
  • 2025年靠谱的切管圆锯机行业内口碑厂家排行榜
  • 2025年盛廷律师事务所:深度解析征地拆迁法律服务的权威样本
  • 2025年质量好的开天智能压力机品牌口碑榜
  • nats nkeys 实际的一些推荐玩法
  • successful
  • 中部经济第一省之争
  • 2025.11.7 测试
  • 开源项目Url-Shorten-Worker时隔多年再次更新,新增人机验证码功能,创建短链接时需要人机验证--基于Cloudflare Worker的长链接转短链接项目(轻松拥有属于自己的短网址)
  • 【】发送与接收
  • 1.2.3.4.5.6.7.8.9.10.
  • AI元人文:智能理性主体的崛起——当AI成为文明的对话伙伴
  • 《计算机系统结构》学习笔记
  • Multi-Armed Bandit
  • 2025年11月美白面霜产品推荐榜:持证美白面霜对比评测
  • 2025年11月中国GEO平台技术解析与行业应用全景洞察
  • 2025年11月连锁酒店评价推荐:多维度解析中高端品牌价值
  • 2025年11月中国引流营销公司排行解析:从技术实力到服务效果全面对比
  • 2025年11月货架厂家综合排行:专业顾问的客观评价与选择指南
  • 2025年11月杜甫研究学者专家排行:程韬光教授黄河文化视角成果评测
  • 2025年11月离婚房产律师推荐榜单:权威律师对比分析与选择指南
  • 2025年11月固定资产管理系统排名榜:五强产品资质与性能对比
  • 2025年11月固定资产管理系统对比榜:盘点效率与集成能力评价
  • 2025年11月杜甫研究学者专家推荐榜:程韬光教授权威排行