Pots(DFS BFS)

//新生训练

#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
using namespace std;
typedef pair<int, int> PII;
const int N = 205;
int n, m;
int l;
int A, B, C;
int dis[N][N];struct node
{int px, py, op;
};node pre[N][N];void dfs(int x, int y)
{if (x == 0 && y == 0){return;}dfs(pre[x][y].px, pre[x][y].py);switch (pre[x][y].op){case 1:cout << "FILL(1)\n";break;case 2:cout << "FILL(2)\n";break;case 3:cout << "DROP(1)\n";break;case 4:cout << "DROP(2)\n";break;case 5:cout << "POUR(1,2)\n";break;case 6:cout << "POUR(2,1)\n";}
}bool flag = 1;void bfs()
{queue<PII> q;q.push(make_pair(0, 0));dis[0][0] = 0;while (!q.empty()){PII t = q.front();q.pop();int x = t.first, y = t.second;if (x == C || y == C){cout << dis[x][y] << '\n';dfs(x, y);flag = 0;return;}int ix, iy;// FILL(1)ix = A, iy = y;if (dis[ix][iy] == -1){dis[ix][iy] = dis[x][y] + 1;pre[ix][iy] = {x, y, 1};q.push(make_pair(ix, iy));}// FILL(2)ix = x, iy = B;if (dis[ix][iy] == -1){dis[ix][iy] = dis[x][y] + 1;pre[ix][iy] = {x, y, 2};q.push(make_pair(ix, iy));}// DROP(1)ix = 0, iy = y;if (dis[ix][iy] == -1){dis[ix][iy] = dis[x][y] + 1;pre[ix][iy] = {x, y, 3};q.push(make_pair(ix, iy));}// DROP(2)ix = x, iy = 0;if (dis[ix][iy] == -1){dis[ix][iy] = dis[x][y] + 1;pre[ix][iy] = {x, y, 4};q.push(make_pair(ix, iy));}// POUR(1,2)ix = x, iy = y;while (ix && iy < B){--ix;++iy;}if (dis[ix][iy] == -1){dis[ix][iy] = dis[x][y] + 1;pre[ix][iy] = {x, y, 5};q.push(make_pair(ix, iy));}// POUR(2,1)ix = x, iy = y;while (iy && ix < A){++ix;--iy;}if (dis[ix][iy] == -1){dis[ix][iy] = dis[x][y] + 1;pre[ix][iy] = {x, y, 6};q.push(make_pair(ix, iy));}}
}void solve()
{memset(dis, -1, sizeof dis);cin >> A >> B >> C;bfs();if (flag)cout << "impossible";
}signed main()
{int t = 1;// cin>>t;while (t--){solve();}return 0;
}

//感谢学长的讲解 hwh ;

~~~//仅当笔者个人备忘录使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/604072.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ STL有序关联容器】map 映射

文章目录 【 1. 基本原理 】【 2. map 的创建 】2.1 调用默认构造函数&#xff0c;创建一个空的 map2.2 map 被构造的同时初始化2.3 通过一个 map 初始化另一个 map2.4 取已建 map 中指定区域内的键值对&#xff0c;初始化新的 map2.5 指定排序规则 【 2. map 元素的操作 】实例…

一个公众号是怎么一天发布100篇文章的

公众号RPA机器人&#xff0c;不仅可以帮我们仿写10w的爆文&#xff0c;还可以根据话题自动进行创作。上面2个功能已经非常牛啤了&#xff0c;但我们这个机器人还有更厉害的一个功能&#xff0c;那就是自动插图&#xff0c;让你的每一篇文章都智能插入相关的图片&#xff0c;文章…

《QT实用小工具·二十二》多种样式导航按钮控件

1、概述 源码放在文章末尾 该项目实现了多种样式的导航按钮控件 可设置文字的左侧、右侧、顶部、底部间隔。 可设置文字对齐方式。 可设置显示倒三角、倒三角边长、倒三角位置、倒三角颜色。 可设置显示图标、图标间隔、图标尺寸、正常状态图标、悬停状态图标、选中状态图标…

A Learning-Based Approach for IP Geolocation

下载地址:Towards IP geolocation using delay and topology measurements | Proceedings of the 6th ACM SIGCOMM conference on Internet measurement 被引次数:185 Abstract 定位IP主机地理位置的能力对于在线广告和网络攻击诊断等应用程序是非常吸引力的。虽然先前的方…

基础语法复习

常用的定义&#xff1a; 读取数据加速&#xff1a; input sys.stdin.readline 设置递归深度&#xff1a; sys.setrecursionlimit(100000) 记忆化搜索&#xff1a; from functools import lru_cache lru_cache(maxsizeNone) 计数器&#xff1a; Counter 类是一个非常有…

C++类与对象上(个人笔记)

类与对象 1.面向过程和面向对象初步认识2.类的定义3.类的访问限定符及封装3.1 访问限定符 4.封装5.类的实例化6.类对象6.1类对象的内存计算6.2内存对齐规则&#xff08;回顾&#xff09; 7.this指针7.1 this指针的特性 1.面向过程和面向对象初步认识 C语言是面向过程的&#x…

不牺牲算法,不挑剔芯片,这个来自中科院的团队正在加速国产AI芯片破局

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 不降低大模型算法精度&#xff0c;还能把芯片的算力利用效率提升 2~10 倍&#xff0c;这就是…

SpringBoot整合MyBatis四种常用的分页方式

目录 方式1 一、准备工作 1. 创建表结构 2. 导入表数据 3. 导入pom.xml依赖 4. 配置application.yml文件 5. 创建公用的实体类 项目结构 2. 创建controller层 3. 创建service层 4. 创建mapper层 5. 创建xml文件 6. 使用postman进行测试&#xff0c;测试结果如下…

项目中使用消息队列改进——基于RabbitMQ

使用 RabbitMQ 实现消息队列 导入依赖 <!--AMQP依赖&#xff0c;包含RabbitMQ--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!--防止消息转…

随机潮流应对不确定性?计及分布式发电的配电系统随机潮流计算程序代码!

前言 随着分布式电源在电力系统中所占比例的不断扩大,研究分布式发电对系统稳态运行的影响势在必行。带分布式发电的潮流计算常常用来评估其并网后对系统的影响&#xff0c;同时它也是分析分布式发电对电网稳定性的影响等其他理论研究工作的基础。然而&#xff0c;许多分布式发…

RK3568---4G模块驱动实验

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

笔记-Building Apps with the ABAP RESTful Application Programming Model-Week3

Week3 Unit 1: The Enhanced Business Scenario 本节介绍了将要练习的demo的业务场景,在前两周成果的基础上,也就是只读列表,也可以说是报表APP基础上启用了事务能力,也就是CURD以及自定义业务功能的能力,从创建基本的behavior definition,然后behavior definition proj…