学习总结!

 java目前学习到了类的实例化:
类:描述一种事物的定义,是抽象的概念
实例:该事物的一个具体的个体,是具体的东西
举例:
世界上人很多,可以定义一个Person类:

Public Person
{Public String Name {get; set;}Public String Age {get; set;}
}

 这是类的创建。
每个人又是有区别的,那我们就可以根据Person类来创建不同的人,比如说:

Person p1 = New Person() { Name = "A", Age = "22" }
Person p2 = New Person() { Name = "B", Age = "23" }

这就是类的实例化。
用类的定义来创建一个实例,就叫做类的实例化。 

用new语句创建对象,这是最常见的创建对象的方法。 

算法题:

 输入测试用例数t,每个例子包括两个4个数字的整数(由1到9组成),一个为源,另外一个为目标。每次可以将其中任何一个数字+1或者-1运算,并且规定1-1=9,9+1=1;也可以将相邻2位数进行交换。问最少需要变换几次,才能从源变为目标 该问题可以用BFS来解决。在BFS搜索过程中,出现过的4位数就不必再试探了,因为再用这个4位数变下去其次数不可能比上次开始的变换次数少。

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
char str[2][5];
int target[4];
struct node{int step;int a[4];
};
bool vis[10][10][10][10];
int bfs()
{node now,next1;for(int i=0;i<4;i++){target[i]=str[1][i]-'0';now.a[i]=str[0][i]-'0';}memset(vis,false,sizeof(vis));queue<node>q;now.step=0;q.push(now);bool flag;while(q.size()){node now=q.front();q.pop();flag=true;for(int i=0;i<4;i++){if(now.a[i]!=target[i]){flag=false;break;}}if(flag){return now.step;}for(int i=0;i<4;i++){next1=now;if(now.a[i]==9)next1.a[i]=1;elsenext1.a[i]=now.a[i]+1;if(!vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]){vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]=true;next1.step=now.step+1;q.push(next1);}}for(int i=0;i<4;i++){next1=now;if(now.a[i]==1)next1.a[i]=9;elsenext1.a[i]=now.a[i]-1;if(!vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]){vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]=true;next1.step=now.step+1;q.push(next1);}}for(int i=0;i<3;i++){next1=now;next1.a[i]=now.a[i+1];next1.a[i+1]=now.a[i];if(!vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]){vis[next1.a[0]][next1.a[1]][next1.a[2]][next1.a[3]]=true;next1.step=now.step+1;q.push(next1);}}}return -1;
}
int main()
{int t;cin>>t;while(t--){cin>>str[0]>>str[1];cout<<bfs()<<endl;}return 0;
}

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

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

相关文章

全国草地资源类型分布图

草地出现在世界各地&#xff0c;约占全球陆地面积的24%&#xff0c;大多分布于大陆内部气候干燥、降水较少的地区&#xff0c;其中澳大利亚、俄罗斯、中国、美国和巴西等国面积较大。中国草地面积约占国土面积的40%&#xff0c;主要分布在内蒙古、东北、西北和青藏高原&#xf…

基于javaweb(springboot+mybatis)网上家具商城项目设计和实现以及文档报告

基于javaweb(springbootmybatis)网上家具商城项目设计和实现以及文档报告 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞…

创建AI智能体

前言 灵境矩阵是百度推出的基于文心大模型的智能体&#xff08;Agent&#xff09;平台&#xff0c;支持广大开发者根据自身行业领域、应用场景&#xff0c;选取不同类型的开发方式&#xff0c;打造大模型时代的产品能力。开发者可以通过 prompt 编排的方式低成本开发智能体&am…

【STL】string的模拟实现

目录 前言 构造函数 析构函数 迭代器 拷贝构造和赋值 深浅拷贝问题 传统写法 现代写法 插入函数 reserve() push_back() append() 操作 insert() erase() 流插入和流提取 流插入 流提取 运算符重载 其它函数实现 []重载 resize() find() substr() …

Matlab|计及电池储能寿命损耗的微电网经济调度

目录 1 主要内容 储能寿命模型 负荷需求响应 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序参考文献《考虑寿命损耗的微网电池储能容量优化配置》模型&#xff0c;以购售电成本、燃料成本和储能寿命损耗成本三者之和为目标函数&#xff0c;创新考虑储能寿命损耗约…

基于 YAML 接口自动化测试框架设计

在设计自动化测试框架的时候&#xff0c;我们会经常将测试数据保存在外部的文件&#xff08;如Excel、YAML、CSV&#xff09;&#xff0c;或者数据库中&#xff0c;实现脚本与数据解耦&#xff0c;方便后期维护。目前非常多的自动化测试框架采用通过Excel或者YAML文件直接编写测…

python 中判断文件、目录是否存在的方法

判断目录是否存在并创建目录 一、实现上传文件功能二、判断目录是否存在的办法2.1、使用os模块2.1.1、判断目录是否存在2.1.2、os.makedirs()&#xff1a;递归创建目录 2.2、使用pathlib模块2.2.1、path.exist()判断目录是否存在2.2.1、path.mkdir()&#xff1a;创建目录 2.3、…

力扣刷题Days25-45. 跳跃游戏 II(js)

目录 1&#xff0c;题目 2&#xff0c;代码 贪心算法正向查找 3&#xff0c;学习 解题思路 具体代码处理 数组遍历的最后边界的处理&#xff1a; 1&#xff0c;题目 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向…

程序结构

oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 程序结构 PL/SQL程序的基本单元是语句块&#xff0c;所有的 PL/SQL程序都是由语句块组成&#xff0c;语句块之间可以相互嵌套&#xff0c;每个语句块完成特定的功能。 一个…

html页面使用@for(){},@if(){},利用jquery 获取当前class在列表中的下标

基于以前的项目进行修改优化&#xff0c;前端代码根据List元素在html里进行遍历显示 原先的代码&#xff1a; 其中&#xff0c;noticeGuide.Id是标识noticeGuide的唯一值&#xff0c;但是不是从0开始的【是数据库自增字段】 但是在页面初始化加载的时候&#xff0c;我们只想…

NO9 蓝桥杯单片机实践之串口通信的使用

1 回顾 串口通信的代码编写结构还是与中断一样&#xff0c;不同的是&#xff1a; 初始中断函数条件涉及到串口通信相关的寄存器和定时器1相关的寄存器&#xff08;定时器1用于产生波特率&#xff09;&#xff0c;但初始条件中的中断寄存器只考虑串口通信而不考虑定时器1。 vo…

基于SSM的高校推免报名(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的高校推免报名&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring Spri…

图解 python 的赋值,浅拷贝,深拷贝

上面的图中&#xff0c;我们将箭头连线看作是引用。 如果你只是简单是 b a&#xff0c;实际上两者的引用是一样的&#xff0c;相当于 b 只是 a 的另外一个名字&#xff0c;不管是对 a 或者 b 内的可变元素还是不可变元素修改&#xff0c;打印 a, b 两者都是一样的。 但是如果…

PHP+MySQL开发组合:智慧同城便民信息小程序源码系统 带完整的安装代码包以及安装部署教程

当前&#xff0c;城市生活的节奏日益加快&#xff0c;人们对各类便民信息的需求也愈发迫切。无论是寻找家政服务、二手交易&#xff0c;还是发布租房、求职信息&#xff0c;一个高效、便捷的信息平台显得尤为重要。传统的信息发布方式往往存在信息更新不及时、查找困难等问题&a…

Jenkins安装 Linux 更换镜像 安装插件

Jenkins安装 Linux 更换镜像 安装插件 前言 下面叙述了三种jenkins安装的方式,jenkins安装之前必须有java环境因为他是java写的… yum安装只能安装最新版本的jenkins,但是jenkins是java写的所以他强依赖java版本,当你的服务器的java版本与jenkins版本冲突时还需要给jenkins重…

攻防世界misc_pic_again

是个png文件 你用binwalk &#xff0c;010&#xff0c;和图片分离都没有什么信息 正确做法—————— 在StegSolve里面 点Ana——Exrtact 选上这三个&#xff0c;你就可以发现 这个二进制是个zip &#xff08;具体原理我不知道&#xff0c;只能说这是新题型&#xff0c…

书生浦语大模型实战营第一课笔记

书生浦语大模型全链路开源体系 课程笔记大模型的发展趋势InternLM2的主要亮点模型到应用的典型流程全链路的开源工具 InternLM2技术报告笔记大型语言模型的发展InternEvoModel Structure训练数据 课程笔记 第一节课主要对大模型进行介绍&#xff0c;特别是书生浦语大模型的发展…

前端学习<二>CSS基础——04-CSS选择器:伪类

伪类&#xff08;伪类选择器&#xff09; 伪类&#xff1a;同一个标签&#xff0c;根据其不同的种状态&#xff0c;有不同的样式。这就叫做“伪类”。伪类用冒号来表示。 比如div是属于box类&#xff0c;这一点很明确&#xff0c;就是属于box类。但是a属于什么类&#xff1f;…

Transformer的前世今生 day09(Transformer的框架概述)

前情提要 编码器-解码器结构 如果将一个模型分为两块&#xff1a;编码器和解码器那么编码器-解码器结构为&#xff1a;编码器负责处理输入&#xff0c;解码器负责生成输出流程&#xff1a;我们先将输入送入编码器层&#xff0c;得到一个中间状态state&#xff0c;并送入解码器…

时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测

时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现BiTCN-BiLSTM双向时间卷积神经网络结合双向长短期记忆神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实现BiTCN…