当前位置: 首页 > 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.fuzeviewer.com/news/24098/

相关文章:

  • 人像摄影作品网站一个人开公司做网站
  • 郑州网站建设方案优化网站设计公司网站制作
  • wordpress 绑定手机版成都seo招聘信息
  • 铜陵高端网站建设漳州本地网
  • 网站小图片素材angular网站模板下载
  • 娄底市建设网站青浦网站建设
  • 网站短链接怎么做没电脑可以建网站吗
  • 仿素材网站源码东莞有互联网企业吗
  • 南昌市科协网站网站建设外包服务安全管理制度
  • 2025年靠谱的电动平板车运输车厂家实力及用户口碑排行榜
  • pycharm 做网站班级网站界面
  • 禅城区网站建站网站中铁建设集团有限公司招标平台
  • 后缀是.cc的网站网站文字规范
  • 成都网站建设四川冠辰科技网站优化工作怎么样
  • 电子商务网站建设与实践第一章课后经典案例网站
  • 营销型网站建设的五力原则包括办公室装修一般价格
  • 网站延迟加载注册app短信验证码平台
  • 医美行业网站建设郴州网站建设公司哪个好
  • 庄河网站怎么举报做棺材四川建设行政主管部门官方网站
  • 如何做网站费用多少成都营销型网站建设价格
  • 闵行区网站网站代码优化的内容有哪些
  • 2025年口碑好的玻璃钢轴流风机厂家最新权威推荐排行榜
  • 仓山网站建设帮别人推广app赚钱
  • 网站建设优化排名推广wordpress自动采集工具
  • 深圳 网站定制汉源县建设局网站
  • 龙岗公司做网站爱发电怎么做网站
  • 如何查询网站的域名注册发稿类别
  • 如何建立一个带论坛的网站好的培训网站模板
  • directadmin备份网站wordpress去掉generator
  • 怎样给自己的网站做优化长沙网站制作品牌