洛谷刷题Day1——P1706+P1157+P2089+P3654
目录
- 1. P1706 全排列问题
- 题目描述
- 输入格式
- 输出格式
- 输入输出样例 #1
- 输入 #1
- 输出 #1
- 说明/提示
- 代码
- 2. P1157 组合的输出
- 题目描述
- 输入格式
- 输出格式
- 输入输出样例 #1
- 输入 #1
- 输出 #1
- 代码
- 3. P2089 烤鸡
- 题目背景
- 题目描述
- 输入格式
- 输出格式
- 输入输出样例 #1
- 输入 #1
- 输出 #1
- 说明/提示
- 代码
- 4. P3654 First Step (ファーストステップ)
- 题目背景
- 题目描述
- 输入格式
- 输出格式
- 输入输出样例 #1
- 输入 #1
- 输出 #1
- 说明/提示
- 代码1-写两个dfs函数,容易理解版
- 代码2-写一个dfs函数
1. P1706 全排列问题
题目描述
按照字典序输出自然数 1 1 1 到 n n n 所有不重复的排列,即 n n n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。
输入格式
一个整数 n n n。
输出格式
由 1 ∼ n 1 \sim n 1∼n 组成的所有不重复的数字序列,每行一个序列。
每个数字保留 5 5 5 个场宽。
输入输出样例 #1
输入 #1
3
输出 #1
1 2 31 3 22 1 32 3 13 1 23 2 1
说明/提示
1 ≤ n ≤ 9 1 \leq n \leq 9 1≤n≤9。
代码
#include <iostream>
#include <vector>
using namespace std;
const int N = 15;
bool st[N];
vector<int> path;
int n;
void dfs(int depth)
{if (depth == n){for (auto p : path) printf("%5d", p);puts("");return;}for (int i = 1; i <= n; i ++){if (!st[i]){st[i] = true;path.push_back(i);dfs(depth + 1);path.pop_back();st[i] = false;}}
}
int main()
{cin >> n;dfs(0);return 0;
}
2. P1157 组合的输出
题目描述
排列与组合是常用的数学方法,其中组合就是从 n n n 个元素中抽出 r r r 个元素(不分顺序且 r ≤ n r \le n r≤n),我们可以简单地将 n n n 个元素理解为自然数 1 , 2 , … , n 1,2,\dots,n 1,2,…,n,从中任取 r r r 个数。
现要求你输出所有组合。
例如 n = 5 , r = 3 n=5,r=3 n=5,r=3,所有组合为:
123 , 124 , 125 , 134 , 135 , 145 , 234 , 235 , 245 , 345 123,124,125,134,135,145,234,235,245,345 123,124,125,134,135,145,234,235,245,345。
输入格式
一行两个自然数 n , r ( 1 < n < 21 , 0 ≤ r ≤ n ) n,r(1<n<21,0 \le r \le n) n,r(1<n<21,0≤r≤n)。
输出格式
所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。
注意哦!输出时,每个数字需要 3 3 3 个场宽。以 C++ 为例,你可以使用下列代码:
cout << setw(3) << x;
输出占 3 3 3 个场宽的数 x x x。注意你需要头文件 iomanip
。
输入输出样例 #1
输入 #1
5 3
输出 #1
1 2 31 2 41 2 51 3 41 3 51 4 52 3 42 3 52 4 53 4 5
代码
#include <iostream>
#include <vector>
using namespace std;
const int N = 25;
vector<int> path;
bool st[N];
int n, r;
void dfs(int depth, int father)
{if (depth == r){for (auto p : path) printf("%3d", p);puts("");return;}for (int i = 1; i <= n; i ++){if (!st[i] && father < i) // 组合是递增序列,所以必须保证先选进去的点要更小{st[i] = true;path.push_back(i);dfs(depth + 1, i);path.pop_back();st[i] = false;}}
}
int main()
{cin >> n >> r;dfs(0, -1);return 0;
}
3. P2089 烤鸡
题目背景
猪猪 Hanke 得到了一只鸡。
题目描述
猪猪 Hanke 特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke 吃鸡很特别,为什么特别呢?因为他有 10 10 10 种配料(芥末、孜然等),每种配料可以放 1 1 1 到 3 3 3 克,任意烤鸡的美味程度为所有配料质量之和。
现在, Hanke 想要知道,如果给你一个美味程度 n n n ,请输出这 10 10 10 种配料的所有搭配方案。
输入格式
一个正整数 n n n,表示美味程度。
输出格式
第一行,方案总数。
第二行至结束, 10 10 10 个数,表示每种配料所放的质量,按字典序排列。
如果没有符合要求的方法,就只要在第一行输出一个 0 0 0。
输入输出样例 #1
输入 #1
11
输出 #1
10
1 1 1 1 1 1 1 1 1 2
1 1 1 1 1 1 1 1 2 1
1 1 1 1 1 1 1 2 1 1
1 1 1 1 1 1 2 1 1 1
1 1 1 1 1 2 1 1 1 1
1 1 1 1 2 1 1 1 1 1
1 1 1 2 1 1 1 1 1 1
1 1 2 1 1 1 1 1 1 1
1 2 1 1 1 1 1 1 1 1
2 1 1 1 1 1 1 1 1 1
说明/提示
对于 100 % 100\% 100% 的数据, n ≤ 5000 n \leq 5000 n≤5000。
代码
#include <iostream>
#include <vector>
using namespace std;
vector<int> path;
vector<vector<int>> paths;
int n;
void dfs(int depth)
{if (depth == 10){int tmp = 0;for (auto p : path) tmp += p;if (tmp == n) paths.push_back(path);return;}for (int i = 0; i < 3; i ++){path.push_back(i + 1);dfs(depth + 1);path.pop_back();}
}
int main()
{cin >> n;dfs(0);cout << paths.size() << endl;if (paths.size()){for (auto pa : paths){for (auto p : pa)cout << p << ' ';puts("");}}return 0;
}
4. P3654 First Step (ファーストステップ)
题目背景
知らないことばかりなにもかもが(どうしたらいいの?)
一切的一切 尽是充满了未知数(该如何是好)
それでも期待で足が軽いよ(ジャンプだ!)
但我仍因满怀期待而步伐轻盈(起跳吧!)
温度差なんていつか消しちゃえってね
冷若冰霜的态度 有朝一日将会消失得无影无踪
元気だよ元気をだしていくよ
拿出活力 打起精神向前迈进吧
我们 Aqours,要第一次举办演唱会啦!
虽然学生会长看上去不怎么支持我们的样子,可是有了理事长的支持,我们还是被允许在校内的篮球场里歌唱!
歌曲也好好地准备过了,名字叫“最喜欢的话就没问题! (ダイスキだったらダイジョウブ!)“,大家一定会喜欢的吧!
演唱会一定会顺利进行的!
希望不要发生停电什么的事故哦……!
题目描述
可是……这个篮球场,好像很久没有使用过的样子啊……
里面堆满了学校的各种杂物呢……
我们 Aqours 的成员要怎么在里面列队站下呢?
我们浦之星女子学院的篮球场是一个 R R R 行 C C C 列的矩阵,其中堆满了各种学校的杂物 (用 #
表示),空地 (用 .
表示) 好像并不多的样子呢……
我们 Aqours 现在已经一共有 K K K 个队员了,要歌唱舞蹈起来的话,我们得排成一条 1 × K 1\times K 1×K 的直线,一个接一个地站在篮球场的空地上呢 (横竖均可)。
我们想知道一共有多少种可行的站位方式呢。
Aqours 的真正的粉丝的你,能帮我们算算吗?
输入格式
第一行三个整数 R , C , K R, C, K R,C,K。
接下来的 R R R 行 C C C 列,表示浦之星女子学院篮球场。
输出格式
总共的站位方式数量。
输入输出样例 #1
输入 #1
5 5 2
.###.
##.#.
..#..
#..#.
#.###
输出 #1
8
说明/提示
R R R | C C C | K K K | 备注 | |
---|---|---|---|---|
1 ∼ 2 1\sim2 1∼2 | ≤ 10 \leq 10 ≤10 | ≤ 10 \leq 10 ≤10 | ≤ min ( R , C ) \leq \min(R,C) ≤min(R,C) | 无 |
3 ∼ 4 3\sim4 3∼4 | ≤ 100 \leq 100 ≤100 | ≤ 100 \leq 100 ≤100 | ≤ 1 \leq 1 ≤1 | 无 |
5 ∼ 6 5\sim6 5∼6 | ≤ 100 \leq 100 ≤100 | ≤ 100 \leq 100 ≤100 | ≤ min ( R , C ) \leq \min(R,C) ≤min(R,C) | 没有障碍 |
7 ∼ 10 7\sim10 7∼10 | ≤ 100 \leq 100 ≤100 | ≤ 100 \leq 100 ≤100 | ≤ min ( R , C ) \leq \min(R,C) ≤min(R,C) | 无 |
对于所有数据, 1 ≤ R , C ≤ 100 1 \leq R,C \leq 100 1≤R,C≤100, 1 ≤ k ≤ min ( R , C ) 1 \leq k \leq \min(R,C) 1≤k≤min(R,C)。
代码1-写两个dfs函数,容易理解版
#include <iostream>
#include <vector>
using namespace std;
typedef pair<int, int> PII;
vector<PII> points;
const int N = 110;
char g[N][N];
bool is_visited[N][N];
int res;
int r, c, k;
void right_dfs(int x, int y, int depth)
{if (depth == k){res ++;return;}if (x < 0 || x >= r || y < 0 || y >= c || g[x][y] == '#') return;right_dfs(x, y + 1, depth + 1);
}
void down_dfs(int x, int y, int depth)
{if (depth == k){res ++;return;}if (x < 0 || x >= r || y < 0 || y >= c || g[x][y] == '#') return;down_dfs(x + 1, y, depth + 1);
}
int main()
{cin >> r >> c >> k;for (int i = 0; i < r; i ++)for (int j = 0; j < c; j ++){cin >> g[i][j];if (g[i][j] == '.') points.push_back({i, j});}if (k == 1) {cout << points.size() << endl;return 0;}for (auto p : points){auto x = p.first, y = p.second;right_dfs(x, y, 0); // 向右深搜down_dfs(x, y, 0);// 向下深搜g[x][y] = '#';}cout << res << endl;return 0;
}
代码2-写一个dfs函数
#include <iostream>
#include <vector>
using namespace std;
typedef pair<int, int> PII;
vector<PII> points;
const int N = 110;
char g[N][N];
bool is_visited[N][N];
int res;
int r, c, k;
int dx[2] = {0, 1}, dy[2] = {1, 0};
void dfs(int x, int y, int dire, int depth)
{if (depth == k){res ++;return;}if (x < 0 || x >= r || y < 0 || y >= c || g[x][y] == '#') return;auto nx = x + dx[dire], ny = y + dy[dire];dfs(nx, ny, dire, depth + 1);
}
int main()
{cin >> r >> c >> k;for (int i = 0; i < r; i ++)for (int j = 0; j < c; j ++){cin >> g[i][j];if (g[i][j] == '.') points.push_back({i, j});}if (k == 1) {cout << points.size() << endl;return 0;}for (auto p : points){auto x = p.first, y = p.second;dfs(x, y, 0, 0); // 向右深搜dfs(x, y, 1, 0);// 向下深搜g[x][y] = '#';}cout << res << endl;return 0;
}
相关文章:
洛谷刷题Day1——P1706+P1157+P2089+P3654
目录 1. P1706 全排列问题题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 说明/提示代码 2. P1157 组合的输出题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 代码 3. P2089 烤鸡题目背景题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 说明/提示代…...
游戏引擎学习第214天
总结并为当天的任务做好准备 昨天,我们将所有调试控制代码迁移到使用新的调试接口中,但我们没有机会实际启用这些代码。我们做了很多准备工作,比如规划、将其做成宏、并将其放入调试流中,但实际上我们还没有办法进行测试。 今天…...
算法题型讲解
一.双指针 主要分为俩种类型: 1.左右指针:双指针指向开头,以一定标准移动或交换,对区域进行划分,或找到特殊点的位置 (如:快慢指针判断有无环,移动零) 2.对撞指针&am…...
Qt零散知识点
Qt零散知识点 Qt优点 跨平台接口简单,易上手一定程度上简化了内存的回收 Qt创建新项目 第一个窗口类默认的三个基类 QWidgetQMainWindowQDialog 其中QWidget是QMainWindow和QDialog的基类 一个Qt项目默认创建的文件 main.cpp 入口函数pro文件:工…...
算法导论(递归回溯)——⼆叉树中的深搜
算法思路(129) 前序遍历遵循“根节点、左子树、右子树”的顺序遍历二叉树的所有节点,常用于解决子节点状态依赖于父节点状态的问题。 算法思路: 在前序遍历的过程中,我们可以将信息从节点向左右子树传递,…...
UE像素流发布linux并进行容器化部署
一、宿主机软硬件要求 主要需要关注两部分:对像素流的支持、对linux容器的支持。 1、像素流要求: https://dev.epicgames.com/documentation/zh-cn/unreal-engine/unreal-engine-pixel-streaming-reference?application_version5.3 2、linux容器要求…...
arco-design-vue:给<a-table>组件每一行添加data-id属性,并根据id数组是否包含此行id进行样式处理
场景需求: 需要支持框选,框住的行需要更改背景色来标识选中了。如下图所示 【shiftq】表示【加入】,【shiftw】表示【移除】 拆分要实现的功能: 1.框选,选中行数据 2.选中行之后,当前行的样式要有所改变 …...
为什么ChatGPT选择SSE而非WebSocket?
为什么ChatGPT选择SSE而非WebSocket? 一、ChatGPT回答问题的技术逻辑 ChatGPT的响应生成基于Transformer架构和自注意力机制,其核心是通过概率预测逐词生成文本。当用户输入问题后,模型会先解析上下文,再通过预训练的庞大语料库…...
【论文精读与实现】EDC²-RAG:基于动态聚类的文档压缩方法提升检索增强生成RAG性能
🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创AI未来! 🚀 1. 论文核心思想 这篇由清华大学团队提出的EDC-RAG框架,针对当前…...
SAP S/4HANA Public Cloud的实施特点、项目阶段、资源和工具
1、SAP S/4HANA Public Cloud与OP、PCE部署的区别 近年来,SAP大力推广S/4HANA Public Cloud版本,越来越多的顾问开始接触SAP Public Cloud项目。S/4HANA Public Cloud强调标准化和简化,适合快速实施的企业,在实施方法、技术特点以及项目管理方法上,都与OP版本、PCE版本都…...
Kafka的生产者和消费者的关系
Apache Kafka 是一个分布式流处理平台,生产者和消费者是 Kafka 中两个核心角色,它们之间存在着紧密的关系,以下从多个方面为你详细介绍: 工作模式 生产者:负责将数据发送到 Kafka 的主题(Topic࿰…...
DAY01:【pytorch】张量
1、张量的简介 1.1 Variable Variable 是 torch.autograd 中的数据类型,主要用于封装 Tensor,进行自动求导 data:被包装的 Tensorgrad:data 的梯度grad_fn:创建 Tensor 的 Function,是自动求导的关键req…...
如何用VBA编辑器合并Word文档:详细教程
在实际办公中,我们经常需要将多个Word文档合并为一个。我将详细讲解如何通过VBA编辑器实现Word文档的自动合并。 前提:先将主文档另存为“docm宏格式”,将要合并的所有文档放在同一个文件夹内。 一、安装VBA编辑器 VBA编辑器是Word自带的工…...
智能体代理模式(Agent Agentic Patterns)深度解析
一、智能体代理模式的理论演进与核心定义 1.1 从自动化工具到认知代理的范式转变 传统AI系统以 规则驱动型工作流 为核心,依赖预设程序执行确定性任务(如制造业机器人)。而智能体(Agent)通过 大语言模型(…...
若依微服务集成Flowable仿钉钉工作流
项目简介 本项目工作流模块集成在若依项目单独一个模块,可实现单独运行部署, 前端采用微前端,嵌入在若依的前端项目中。因博主是后端开发,对前端不是太属性,没将工作流模块前端代码移到若依前端。下面贴上代码工程结构…...
关于数据结构B树部分的知识点,解题过程以及方法思路
关键点数和节点数的关系...
TOGAF之架构标准规范-技术架构
TOGAF是工业级的企业架构标准规范,本文主要描述技术架构阶段。 如上所示,技术架构(Technology Architecture)在TOGAF标准规范中处于D阶段 技术架构阶段 技术架构阶段的主要内容包括阶段目标、阶段输入、流程步骤、阶段输出、架构…...
经济金融优化:最优消费与投资分配的MATLAB实战
内容摘要 本文聚焦经济金融领域的优化问题,详细介绍最优消费和最优投资分配的理论与实践。 关键词:最优消费;最优投资分配;效用最大化;投资收益;MATLAB 一、引言 在经济金融领域,个体和企业常…...
【Python语言基础】17、继承
文章目录 1. 继承1.1 为什么要用继承1.2 继承的基本语法1.3 方法重写1.4 多重继承 2. supper()2.1 作用2.2 基本语法2.3 注意事项2.4 super() 在多继承中的特点 1. 继承 在 Python 里,继承是一种强大的编程概念,它允许一个类(子类࿰…...
基于CNN-GRU的深度Q网络(Deep Q-Network,DQN)求解移动机器人路径规划,MATLAB代码
一、深度Q网络(Deep Q-Network,DQN)介绍 1、背景与动机 深度Q网络(DQN)是深度强化学习领域的里程碑算法,由DeepMind于2013年提出。它首次在 Atari 2600 游戏上实现了超越人类的表现,解决了传统…...
DAY06:【pytorch】图像增强
1、基本概念 数据增强,又称数据增广、数据扩增,是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力 2、裁剪 — — Crop 2.1 transforms.CenterCrop 功能:从图像中心裁剪图片 size:所需裁剪图…...
K_KMS工具(适用windows和office)
目录 前言 一、下载 二、运行 前言 KMS工具(适用windows和office)。 一、下载 访问下载 💾下载👉工具下载地址:https://pan.quark.cn/s/bfdaa27ea823 二、运行 1、在下载目录中找到压缩包,并解压。 …...
Python Cookbook-5.12 检查序列的成员
任务 你需要对一个列表执行很频繁的成员资格检査。而in操作符的 O(n)时间复杂度对性能的影响很大,你也不能将序列转化为一个字典或者集合,因为你还需要保留原序列的元素顺序。 解决方案 假设需要给列表添加一个在该列表中不存在的元素。一个可行的方法…...
移动端六大语言速记:第13部分 - 网络与通信
移动端六大语言速记:第13部分 - 网络与通信 本文将对比Java、Kotlin、Flutter(Dart)、Python、ArkTS和Swift这六种移动端开发语言在网络与通信方面的特性,帮助开发者理解和掌握各语言的网络编程能力。 13. 网络与通信 13.1 HTTP请求 各语言HTTP请求实…...
kafka生产者partition数量和消费者数量的关系
在 Kafka 中,生产者的分区(Partition)数量和消费者数量之间存在着密切的关系,这种关系对 Kafka 集群的性能、数据处理的并行性以及负载均衡等方面都有着重要影响,以下为你详细介绍: 核心原则 Kafka 中每个…...
数据库主从复制学习笔记
目录 一、Binlog(Binary Log) 核心特性 核心用途 Binlog 格式(3种类型) 二、主从复制 核心原理 主库(Master) 从库(Slave) 配置步骤(以 MySQL 为例) …...
使用xml模板导出excel
下面这种表格如何使用xml导出呢? xml代码 <?xml version"1.0" encoding"UTF-8"?> <tables><styles><style id"h1" font.fontheightinpoints"14" font.fontname"黑体" alignment"c…...
深入解析栈式虚拟机与反向波兰表示法
1.1 什么是虚拟机? 虚拟机(Virtual Machine, VM)是一种软件实现的计算机系统,提供与物理计算机相类似的环境,但在软件层面运行。虚拟机的存在简化了跨平台兼容性、资源管理以及安全隔离等问题。 1.2 栈式虚拟机的架构…...
软件验收测试方法有哪些?验收测试报告如何获取?
大数据互联网时代,各种软件产品为我们的生活和工作带来了极大的便利,企业为了更好的保障软件产品质量,软件测试工作不可或缺。软件验收测试作为软件测试过程中的最后一个测试工作,也被称之为交付测试。验收测试主要是测试软件系统…...
Flexoo 柔性薄膜加热片技术全解析:从原理到应用优势
FLEXOO柔性薄膜加热片通过创新技术实现高效加热。它的柔性设计能够适配不同形状的表面,满足多种设备的需求。PTC加热技术让加热片具备自我调节功能,自动调整热输出以提升安全性与能效。固定功率加热技术则确保热量稳定输出,适合需要持续加热的场景。你可以依赖它的节能环保特…...
DeepSeek与搜索引擎:AI生成内容如何突破“语义天花板”
一、搜索引擎的“内容饥饿症”与AI的“产能悖论” 2024年,全球每天新增470万篇网络文章,但搜索引擎的索引拒绝率高达68%。这一矛盾的根源在于:算法对“高质量原创”的定义已从“形式独特性”转向“认知增值性”。传统AI生成内容(…...
【1】k8s集群管理系列--包应用管理器之helm
一、helm概述 Helm核心是模板,即模板化K8s YAML文件。 通过模板实现Chart高效复用,当部署多个应用时,可以将差异化的字段进行模板化,在部署时使用-f或 者–set动态覆盖默认值,从而适配多个应用 helm工作流程…...
【零基础玩转多模态AI:Gemma3 27B开源视觉模型本地部署与远程访问】
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
安全岗の夺命连环问:(第壹篇)从XSS到0day的灵魂拷问
终极目录 一、面试官の死亡凝视:"给我手撕一个反射型XSS!" 1.1 菜鸟の陨落:那些年我们写过的致命代码 1.2 渗透艺术:如何用XSS实现CSRF联动攻击 1.3 防御矩阵:OWASP ESAPI的十八层净化 二、血泪实战&am…...
IAP Firmware Upload Tools.exe IAP 网络固件升级教程
IAP是In Application Programming的简写,IAP升级可以被视为固件升级的一种形式,它是一种在应用程序运行过程中对固件进行更新的技术手段。允许MCU在运行过程中对MCU User Flash的部分区域进行烧写,目的是为了代替编程器对MCU烧录的依赖。 主程序UI 软件按钮说明&a…...
Redis 7高性能缓存与分布式架构实战
大家好,我是袁庭新。很高兴向大家推荐我的新课《Redis 7高性能缓存与分布式架构实战》。这套课程是我与两位一线大厂的高级开发工程师朋友共同研发的,他们分别来自华为和美团,拥有丰富的实战经验。我将担任课程的主讲,为大家带来全…...
自动驾驶时间同步
主要包含两个大的概念:时间系统间的时间同步与传感器数据间的时间同步 1. 时间系统间的时间同步 概念: 自动驾驶域控一般由多个芯片与多种类型的传感器组成,如:MCU SoC Camera Lidar Radar USS GNSS,其中 MCU…...
CISA关键措施要求解析:提升组织网络安全的实用指南
1. 引言 在当今日益复杂的网络安全环境中,组织面临着前所未有的挑战。美国网络安全与基础设施安全局(CISA)提出的关键措施要求,为组织提供了一个全面的框架来加强其网络安全态势。本文将深入探讨这些措施,并提供实际的实施建议。 2. CISA关键措施概述 CISA关键措施包括以下几…...
java笔记03
基本数据类型 数据值是存储在自己的空间中。 特点:赋值给其他变量,也是赋的真实的值。 引用数据类型 数据值是存储在其他空间中,自己空间中存储的是地址值。 特点:赋值给其他变量,赋的地址值。 综合练习 使用 ctrl…...
【HarmonyOS 5】鸿蒙的装饰器原理和自定义装饰器
【HarmonyOS 5】鸿蒙的装饰器原理和自定义装饰器 一、鸿蒙中的装饰器是什么? 在ArkTS中装饰器(Decorator)是一种特殊的声明,能够对类、方法、属性等进行标注和修改。 因为ArkTS 是TypeScript 扩展而来的编程语言,Ty…...
【Java学习】AI时代下如何学习Java语言开发
学习 Java 语言开发时,合理借助 AI 工具可以提升效率、深化理解,以下是具体的学习策略和方法: 一、利用 AI 辅助基础学习 1. 智能文档解读与语法解析 工具:ChatGPT、Bing Chat、Google Bard用法: 直接提问基础语法问…...
dd命令刻录CENT OS10 (.iso)光盘镜像文件到U盘
操作系统 | “扇区”、“簇”、“块”、“页”等概念_文件系统的簇和扇区-CSDN博客 Windows下面的DD工具_windows dd工具-CSDN博客 如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)_isou-CSDN博客 1 到CENT OS 网站download iso光盘镜像文件 ht…...
2025年常见渗透测试面试题- Java考察(题目+回答)
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 Java考察 一、Java MVC架构与数据流向 二、Java沙箱安全机制 三、iBATIS参数化查询与注入防御 四、…...
MySQL:事务的理解
一、CURD不加控制,会有什么问题 (1)因为,MySQL里面存的是数据,所以很有可能会被多个客户访问,所以mysqld可能一次会接受到多个关于CURD的请求。(2)且mysql内部是采用多线程来完成数…...
开源推荐#5:CloudFlare-ImgBed — 基于 CloudFlare Pages 的开源免费文件托管解决方案
大家好,我是 jonssonyan。 寻找一个稳定、快速、还最好是免费或成本极低的图床服务,一直是许多开发者、博主和内容创作者的痛点。公共图床可能说关就关,付费服务又增加成本。现在,一个名为 CloudFlare-ImgBed 的开源项目…...
[设计模式]发布订阅者模式解耦业务和UI(以Axios拦截器处理响应状态为例)
当前的代码使用了多个if-else分支来处理不同的状态码,这会导致代码耦合度高,难以维护和扩展。比如,如果未来要新增一个状态码的处理,就需要修改原有的拦截器代码,这违反了开闭原则。发布订阅模式可以将不同状态码的处理逻辑解耦,每个状态码对应一个订阅者,通过中间件来管…...
Redis的过期和内存淘汰策略
文章目录 惰性删除定期删除内存满了,数据淘汰策略 Redis 提供了两种删除策略: 惰性删除 、定期删除 惰性删除 定期删除 两种清除模式: 内存满了,数据淘汰策略 Redis 提供了八种数据淘汰策略: 1. 默认是不淘汰任何的 key&#x…...
每日一题-力扣-2999. 统计强大整数的数目 0410
2999. 统计强大整数的数目 问题分析 题目描述 题目要求统计区间 [start, finish] 内的强大整数数量。强大整数需满足以下条件: 每位数字不超过 limit以字符串 s 作为后缀关键要点理解 强大整数的定义:整数的每一位都不超过 limit,且必须以字符串 s 结尾。区间计数:需要统…...
Flink回撤流详解 代码实例
一、概念介绍 1. 回撤流的定义 在 Flink 中,回撤流主要出现在使用 Table API 或 SQL 进行聚合或更新操作时。对于那些结果并非单纯追加(append-only)的查询,Flink 会采用“回撤流”模式来表达更新。 回撤流的数据格式ÿ…...
学习笔记四——Rust 函数通俗入门
🦀 Rust 函数通俗入门 📘 Rust 是一门语法精炼但设计严谨的系统级语言。本文围绕函数这一主线,带你真正搞懂 Rust 最关键的语法思想,包括表达式驱动、闭包捕获、Trait 限制、生命周期标注与所有权规则,每遇到一个新概念…...