水一道绿题,整体思路和八数码很像,哈希表存解,然后常规模拟即可

#include<iostream>
#include<utility>
#include<queue>
#include<string>
using namespace std;
typedef long long ll;
#define fi(i,a,b) for(int i = a; i <= b; ++i)
#define fr(i,a,b) for(int i = a; i >= b; --i)
#define x first
#define y second
#define sz(x) ((int)(x).size())
#define pb push_back
using pii = pair<int,int>;
//#define DEBUG
int T,ca,cb,n,a,b;
bool vis[1005][1005];
struct water{
int a,b,step;
string res;
};
void bfs(){
queue<water> que;
que.push({0,0,0});
while(!que.empty()){
water temp = que.front();
que.pop();
if(temp.b == n){
cout << temp.step << " ";
cout << temp.res[0];
fi(i,1,sz(temp.res)-1) cout << " " << temp.res[i];
cout << endl;
return;
}
fi(i,1,6){
if(i == 1){
if(temp.a < ca)
{
if(!vis[ca][temp.b])
que.push({ca,temp.b,temp.step+1,temp.res + '1'}),vis[ca][temp.b] = true;
}
}
if(i == 2){
if(temp.b < cb)
{
if(!vis[temp.a][cb])
que.push({temp.a,cb,temp.step+1,temp.res + '2'}),vis[temp.a][cb] = true;
}
}
if(i == 3){
if(temp.a != 0)
{
if(!vis[0][temp.b])
que.push({0,temp.b,temp.step+1,temp.res + '3'}),vis[0][temp.b] = true;
}
}
if(i == 4){
if(temp.b != 0)
{
if(!vis[temp.a][0])
que.push({temp.a,0,temp.step+1,temp.res + '4'}),vis[temp.a][0];
}
}
if(i == 5){
if(temp.b != 0 && temp.a != ca){
int v = min(temp.a+temp.b,ca);
int a = temp.b - (v - temp.a);
if(!vis[v][a])
que.push({v,a,temp.step+1,temp.res+'5'}),vis[v][a] = true;
}
}
if(i == 6){
if(temp.a != 0 && temp.b != cb){
int v = min(temp.b+temp.a,cb);
int a = temp.a - (v - temp.b);
if(!vis[a][v])
que.push({a,v,temp.step+1,temp.res+'6'}),vis[v][a] = true;
}
}
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin >> T;
while(T--){
fi(i,0,1000) fi(j,0,1000) vis[i][j] = false;
cin >> ca >> cb >> n;
vis[0][0] = true;
bfs();
}
#ifdef DEBUG
//freopen(D:\in.txt,r,stdin);
#endif
return 0;
}

洛谷P1432的更多相关文章

  1. 洛谷P1432 倒水问题(CODEVS.1226)

    To 洛谷.1432 倒水问题 题目背景 In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were co ...

  2. 洛谷P1432 倒水问题

    题目背景 In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with th ...

  3. 洛谷 P1432 倒水问题

    目录 题目 思路 \(Code\) 题目 戳 思路 \(bfs\) 第一遍提交\(50\),第二遍就\(100\)了,qwq \(Code\) #include<iostream> #in ...

  4. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  5. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  6. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  7. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  8. 洛谷P1710 地铁涨价

    P1710 地铁涨价 51通过 339提交 题目提供者洛谷OnlineJudge 标签O2优化云端评测2 难度提高+/省选- 提交  讨论  题解 最新讨论 求教:为什么只有40分 数组大小一定要开够 ...

  9. 洛谷P1371 NOI元丹

    P1371 NOI元丹 71通过 394提交 题目提供者洛谷OnlineJudge 标签云端评测 难度普及/提高- 提交  讨论  题解 最新讨论 我觉得不需要讨论O long long 不够 没有取 ...

  10. 洛谷P1538迎春舞会之数字舞蹈

    题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...

随机推荐

  1. Linux(四):Linux的打包和压缩详解

    关于Linux的文件操作,这里汇总一下打包和压缩的一些命令,以及命令使用的详情. 打包(归档)和压缩 归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中.归档文件没有经过压缩, ...

  2. C 语言编程 — 高级数据类型 — 结构体与位域

    目录 文章目录 目录 前文列表 结构体 定义结构体 初始化结构体变量 访问结构体成员 将结构体作为实参传入函数 指向结构体变量的指针 位域 定义位域 使用位域结构体的成员 前文列表 <程序编译流 ...

  3. Linux下mv和cp命令的区别

    1.功能上的区别 ​ mv:用户可以使用mv为文件或目录重命名或将文件由一个目录移入另一个目录中. ​ cp: cp的功能是将给出的文件或目录拷贝到另一文件或目录中. 2.inode上的区别(inod ...

  4. winform 关于无边框和拖动窗体边缘改变尺寸的 踩坑笔记

    在做美化winform窗体,实现自定义窗体标题栏,圆角边框,并且支持拖拽窗体,最后还要能拖动窗体左.右.下边缘时,改变窗体的宽和高. 一般网上的都有代码,窗体设成无边框,自己加个panel就能实现自定 ...

  5. 启动Django项目的方式

    方式一: python manage.py runserver 方式二: # 加上监听地址和端口 python manage.py runserver 0.0.0.0:8080 方式三: 使用 Pyc ...

  6. Android 13 - Media框架(25)- OMXNodeInstance(二)

    关注公众号免费阅读全文,进入音视频开发技术分享群! 上一节我们了解了 OMXNodeInstance 的创建过程,以及 IOmx 服务和 OMXNodeInstance.OMX组件之间的联系.接下来我 ...

  7. NOIP模拟95(多校28)

    T1 嗑瓜子 解题思路 \(f_{i,j}\) 表示操作 \(i\) 次,拿走了 \(j\) 个瓜子的概率,转移就比较直接了: \[f_{i+1,j+1}\leftarrow f_{i,j}\time ...

  8. 2024-06-08:用go语言,给定三个正整数 n、x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋。 在这座城市中,房屋通过街道相连。对于每个编号i(1 <= i < n), 存在一条

    2024-06-08:用go语言,给定三个正整数 n.x和y, 表示城市中的房屋数量以及编号为x和y的两个特殊房屋. 在这座城市中,房屋通过街道相连.对于每个编号i(1 <= i < n) ...

  9. EF CORE 遇到“无法打开登录所请求的数据库 "win7bc"。登录失败。”

    报错内容:ex:An exception has been raised that is likely due to a transient failure. Consider enabling tr ...

  10. Prometheus 聚合查询的两个方案

    问题背景 多个 Prometheus 集群或者多个 VictoriaMetrics 集群,在 Grafana 和夜莺里通常需要创建多个不同的数据源,这也就意味着,数据没法聚合查询,比如统一做一下 su ...