3.19学习总结

一.题解分析

 

 这是一道bfs的题目,初看毫无头绪,经过点拨后恍然大悟,我们需要记录其六个操作,对每次选择时每个操作进行入队检查,最终得到任意一个罐子里的水等于c,记录其总操作步数,并进行输出.这里的操作类似于走迷宫时,我们设置的方向数组.然后我们在输出操作时,可以用一个数组记录对应操作的序号,在结束时通过序号输出操作.

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <queue>
#include <algorithm>
using namespace std;
#define N 10005
struct node {
	int x, y;
	int step[N];
	int sum;
};
int A, B, C;
bool vis[105][105];
bool bfs() 
{
	memset(vis, 0, sizeof(vis));//清空
	queue<node>q;
	node a, b;
	a.x = a.y = a.sum = 0;
	vis[a.x][a.y] = 1;
	q.push(a);
	while (!q.empty())
	{
		a = q.front();
		q.pop();
		if (a.x == C || a.y == C)//结束条件,如果有一个罐子里的水等于C,结束
		{
			cout << a.sum << endl;//输出操作步数
			for (int i = 1; i <= a.sum; i++) {//通过数组序号,输出对应操作
				if (a.step[i] == 1) cout << "FILL(1)" << endl;
				if (a.step[i] == 2) cout << "FILL(2)" << endl;
				if (a.step[i] == 3) cout << "DROP(1)" << endl;
				if (a.step[i] == 4) cout << "DROP(2)" << endl;
				if (a.step[i] == 5) cout << "POUR(1,2)" << endl;
				if (a.step[i] == 6) cout << "POUR(2,1)" << endl;
			}
			return true;
		}
		for (int i = 1; i <= 6; i++) {//循环枚举每轮操作
			b = a;
			if (i == 1) b.x = A;
			if (i == 2) b.y = B;
			if (i == 3) b.x = 0;
			if (i == 4) b.y = 0;
			if (i == 5) {
				if (a.x + a.y <= B) {//在A倒入B时要判断,A是否有剩余
					b.x = 0;
					b.y = a.x + a.y;
				}
				else {
					b.x = a.x + a.y - B;
					b.y = B;
				}
			}
			if (i == 6) {
				if (a.x + a.y <= A) {//在B倒入A时要判断,B是否有剩余
					b.x = a.x + a.y;
					b.y = 0;
				}
				else {
					b.x = A;
					b.y = a.x + a.y - A;
				}
			}
			if (!vis[b.x][b.y]) {
				vis[b.x][b.y] = 1;
				b.sum = a.sum + 1;
				b.step[b.sum] = i;//记录操作序号
				q.push(b);
			}
		}
	}
	return false;
}

int main()
{
	cin >> A >> B >> C;
	if (!bfs())
		cout << "impossible" << endl;
	return 0;
}

二.java学习进度总结

1.关于java学习的全部软件已经按照完成并完成其环境的配置.

2.初步了解java语言的特点,了解java入门的相关知识.

3.开始学习java的基础知识和语法.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

1-postgresql数据库高可用脚本详解

问题&#xff1a; pgrep -f postgres > /dev/null && echo 0 || pkill keepalived 这是什么意思 建议换成 pgrep -f postmaster > /dev/null && echo 0 || pkill keepalived 回答 这条命令是一个复合命令&#xff0c;包含条件执行和重定向的元素。让我们…

Springboot+Redis:实现缓存 减少对数据库的压力

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏Redis实战与进阶 本专栏讲解Redis从原理到实践 …

根据自己的想法去模拟实现库函数(1)

由于最近比较忙&#xff0c;导致好久没更新了。想我没&#xff1f;嘻嘻&#xff0c;不闹了&#xff0c;开始我们今天的小课堂吧&#xff01; 什么&#xff0c;你想上课走神&#xff1f;小心二叔给你梳头哦&#xff01; 那么这篇文章就先带大家去模拟一下strlen这个函数吧。 st…

01 JDBC介绍

文章目录 JDBC本质版本使用核心APIDriverDriverManager驱动注册连接对象获取 Connection获取执行对象事务管理 Statement概述 ResultSet概述 JDBC本质 官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口各个数据库厂商去实现这套接…

利用Python爬虫获取xx数据

目录 一、前言 二、requests 请求库 1、requests 安装 2、requests 的基本使用 三、Beautiful Soup 1、Beautiful Soup 安装 2、BeautifulSoup对象介绍与创建 3、BeautifulSoup对象的find方法 四、总结 一、前言 什么是爬虫&#xff1f; 网络爬虫&#xff08;又被称为…

外键约束

目录 外键约束 对数据表进行初期设计&#xff0c;暂时不使用外键 验证限制三 验证级联删除 设置级联更新 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 外键约束 外键约束主要是在父子表关系中体现的一种约束操作。…

【C++】string 类---字符判断与大小写转换(超详细解析!)

目录 一、string 类的介绍 二、字符大小写转换与判断常用函数 &#x1f4a6; 字符大小写判断 ① isalpha() ② isalnum() ③ isdigit() ④ islower() ⑤ isupper() &#x1f4a6; 字符大小写转换 ① tolower() ✨方法一&#xff1a; ✨方法二&#xff1a; ② toupper() ✨方…

实现:mysql-5.7.42 到 mysql-8.2.0 的升级(二进制方式)

实现&#xff1a;mysql-5.7.42 到 mysql-8.2.0 的升级&#xff08;二进制方式&#xff09; 1、操作环境1、查看当前数据库版本2、操作系统版本3、查看 Linux 系统上的 glibc&#xff08;GNU C 库&#xff09;版本&#xff08;**这里很重要&#xff0c;要下载对应的内核mysql版本…

Java之全体集合!

介绍 容器&#xff0c;就是可以容纳其他Java对象的对象。Java Collections Framework(JCF)为Java开发者提供了通用的容器&#xff0c;其始于JDK 1.2.优点是: 降低编程难度提高程序性能提高API间的互操作性降低学习难度降低设计和实现相关API的难度增加程序的重用性 Java容器里…

JavaSE-09笔记【异常(+2024新)】

文章目录 1. 异常概述2.异常继承结构2.1 编译时异常和运行时异常区别2.2 如何让异常发生&#xff08;throw关键字&#xff09; 3.自定义异常4.异常的处理4.1 第一种处理方式&#xff1a;声明异常 &#xff08;throws关键字&#xff09;4.2 第二种处理方式&#xff1a;捕捉异常 …

Go语言之函数、方法、接口

一、函数 函数的基本语法&#xff1a; func 函数名&#xff08;形参列表&#xff09;&#xff08;返回值列表&#xff09; {执行语句...return 返回值列表 } 1.形参列表&#xff1a;表示函数的输入 2.函数中的语句&#xff1a;表示为了实现某一功能的代码块 3.函数可以有返回…

SpringBoot集成WebService

1&#xff09;添加依赖 <dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.3.4</version><exclusions><exclusion><groupId>javax.validation<…

[蓝桥杯 2023 省 B] 飞机降落(暴搜DFS+贪心)

总结&#xff1a;为什么你看到题想不出来怎么写呢&#xff0c;我想不到这道题还会用到dfs的思想&#xff0c;顶多能知道可能会有贪心&#xff0c;还是得多做题。 这道题让我想起来导弹拦截和借教室&#xff0c;记得有空做做&#xff01;&#xff01;不要研究难题&#xff0c;把…

蓝桥杯--完全二叉树

import java.util.Scanner;import static java.lang.Math.log;public class top9 {//求树的每一层的和public static void main(String [] args){Scanner scannernew Scanner(System.in);int nscanner.nextInt();int [] arrnew int[n];for(int i0;i<n;i){arr[i]scanner.next…

超快速排序(蓝桥杯,归并排序,acwing)

题目描述&#xff1a; 在这个问题中&#xff0c;您必须分析特定的排序算法----超快速排序。 该算法通过交换两个相邻的序列元素来处理 n 个不同整数的序列&#xff0c;直到序列按升序排序。 对于输入序列 9 1 0 5 4&#xff0c;超快速排序生成输出 0 1 4 5 9。 您的任务是确…

英伟达深夜放王炸|字节跳动游戏之路波折不断|文旅短剧风口将至|25岁QQ魅力不减,5亿人在用|云计算市场疯长152%|电商巨头齐瞄向富足悠闲银发族

新闻一分钟速览 文旅短剧风口将至&#xff0c;一地狂拍十部&#xff0c;影视界看法分歧&#xff0c;悬念丛生&#xff01;字节跳动游戏之路波折不断&#xff0c;能否逆风翻盘引关注。折叠屏手机痛症治愈&#xff0c;实力席卷高端市场&#xff0c;势头强劲&#xff01;雷军豪言…

12|检索增强生成:通过RAG助力鲜花运营

什么是 RAG&#xff1f;其全称为 Retrieval-Augmented Generation&#xff0c;即检索增强生成&#xff0c;它结合了检 索和生成的能力&#xff0c;为文本序列生成任务引入外部知识。RAG 将传统的语言生成模型与大规模 的外部知识库相结合&#xff0c;使模型在生成响应或文本时可…

014 Linux_同步

​&#x1f308;个人主页&#xff1a;Fan_558 &#x1f525; 系列专栏&#xff1a;Linux &#x1f339;关注我&#x1f4aa;&#x1f3fb;带你学更多操作系统知识 文章目录 前言一、死锁&#xff08;1&#xff09;死锁概念 二、同步&#xff08;1&#xff09;同步概念&#xff…

Python入门(小白友好)

知识图谱 搭建环境 安装Python:Download Python | Python.org 安装PyCharm:Download PyCharm: The Python IDE for data science and web development by JetBrains 注意:专业版本是收费的,新手小白使用社区版(community)即可 创建第一个项目: 一些PyCharm的设置(也适用…

40年创新蝶变,IBM与中国共创新质生产力

2024年是“新质生产力”进入政府工作报告第一年&#xff0c;也是百年追求科技创新的IBM在华40周年&#xff0c;同时IBM全球正全力打造下一代企业生产力平台——突破性的企业混合云与AI。2023年&#xff0c;IBM推出基于开源混合云平台Red Hat Openshift的下一代企业级数据和AI平…