当前位置: 首页 > news >正文

2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家


前言

在这里插入图片描述


题解

2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛)。

国赛比省赛难一些,做得汗流浃背,T_T.

在这里插入图片描述


RC-u1 大家一起查作弊

分值: 15分

这题真的太有意思,看看描述

在今年的睿抗比赛上,有同学的提交代码如下:

public void asfiasfgwef12() {int tsadflas=3;int masf11233=2;int[]wasdf1213= new int[10 +1];int[] vasf124l = new int[10 + I];int[][] ddasf1234p= new int[masf11233

你肯定很奇怪,这看上去代码似乎不像是正常写出来的代码呀?没错,这是这位同学在网络上购买了所谓的“保研综测套餐”,商家为逃避赛后查重,给这位同学发去了经过混淆的代码。然而经过技术支持方的努力,这位同学不仅被封禁,与 TA 购买了相同“套餐”的同学也利用技术手段全部查出,目前主办方已向警方报案,这些同学的“保研”梦很有可能会转变为“案底”梦……因此如果你在比赛前也购买了类似的服务,现在迷途知返还来得及——毕竟这个商家起码还做了一些努力,许多商家号称“一对一”,实际上将一份代码发给了数十位同学……

题外话,这个混淆方式是不是挺眼熟。

言归正传,这题已经构建一个模型,只要按要求编写即可,模拟。

#include <bits/stdc++.h>using namespace std;int judge(char c) {if (c >= 'a' && c <= 'z') return 1;else if (c >= 'A' && c <= 'Z') return 2;else if (c >= '0' && c <= '9') return 4;return 0;
}int main() {int score = 0;int tot = 0, cnt = 0;string line;while (getline(cin, line)) {int i = 0;int n = line.size();while (i < n) {if (judge(line[i]) == 0) {i++;continue;}int j = i + 1;while (j < n && judge(line[j]) != 0) {j++;}int mask = 0;for (int t = i; t < j; t++) {mask |= judge(line[t]);}if (mask == 7) {score += 5;} else if (mask == 6 || mask == 5) {score += 3;} else if (mask == 3) {score += 1;}cnt++;tot += (j - i); i = j;}}cout << score << '\n';cout << tot << " " << cnt << '\n';return 0;
}

RC-u2 谁进线下了?II

分值: 20分

题型: 阅读理解 + 模拟

需要注意:

  1. 不要输出未参赛的队伍分数
#include <bits/stdc++.h>using namespace std;int tabs[] = {0, 25, 21, 18, 16, 15, 14, 13, 12, 11, 10,9, 8, 7, 6, 5, 4, 3, 2, 1, 0};int main() {int t;cin >> t;vector<int> vis(30);vector<int> scores(30);while (t-- > 0) {for (int i = 0; i < 20; i++) {int c, r;cin >> c >> r;scores[c - 1] += tabs[r];vis[c - 1] = 1;}}vector<array<int, 2>> arr;for (int i = 0; i < 30; i++) {arr.push_back({i, scores[i]});}sort(arr.begin(), arr.end(), [](auto &a, auto &b) {if (a[1] != b[1]) return a[1] > b[1];return a[0] < b[0];});int m = arr.size();for (int i = 0; i < m;i++) {if (vis[arr[i][0]] == 1) {cout << (arr[i][0] + 1) << " " << arr[i][1] << '\n';}}return 0;
}

RC-u3 势均力敌

分值: 25 分

思路: 枚举 + 折半查找(meet in middle)

利用 c++自带的permutation函数簇,生成所有的排列

当n=4时,排列最多为24个

此时有常规的思路,0-1背包,但值域太大的

考虑到24个,可以运用位运算枚举,然后折半加速

#include <bits/stdc++.h>using namespace std;struct K {int64_t k;int v;bool operator<(const K&lhs) const {if (k != lhs.k) return k < lhs.k;return v < lhs.v;}
};int main() {int n;cin >> n;vector<int> arr(n);for (int& x: arr) cin >> x;sort(arr.begin(), arr.end());int64_t sum = 0;vector<int> vals;do {int w = 0;for (auto &v: arr) w = w * 10 + v;vals.push_back(w);sum += (int64_t)w * w;} while(next_permutation(arr.begin(), arr.end()));if (sum % 2 == 1) {return 0;}// meet in middle 的枚举技巧int cnt = vals.size() / 2;int mask = 1 << cnt;map<K, int> hp;for (int i = 0; i < mask; i++) {int64_t tsum = 0, z = 0;for (int j = 0; j < cnt; j++) {if ((i & (1 << j)) != 0) {tsum += (int64_t)vals[j+cnt] * vals[j + cnt];z ++;}}hp[K(tsum, z)] = i;}int ans1 = -1, ans2 = -1;for (int i = 0; i < mask; i++) {int64_t tsum = 0, z = 0;for (int j = 0; j < cnt; j++) {if ((i & (1 << j)) != 0) {tsum += (int64_t)vals[j] * vals[j];z ++;}}if (hp.find(K(sum/2 - tsum, cnt - z)) != hp.end()) {ans1 = i;ans2 = hp[K(sum/2 - tsum, cnt - z)];break;}}for (int i = 0; i < cnt; i++) {if ((ans1 & (1 << i)) != 0) {cout << vals[i] << '\n';}}for (int i = 0; i < cnt; i++) {if ((ans2 & (1 << i)) != 0) {cout << vals[i + cnt] << '\n';}}return 0;
}

RC-u4 City 不 City

分值: 30分

题型: 图论

其实就是变形版的Dijkstra,权值为(最短路径, 最小热度)

这边采用二分最小热度 + 最短路径验证

#include <bits/stdc++.h>using namespace std;struct K {int cost, idx;bool operator<(const K &lhr) const {return cost > lhr.cost;}
};int main() {int n, m, s, e;cin >> n >> m >> s >> e;s--; e--;vector<int> arr(n);for (int &x: arr) cin >> x;vector<vector<array<int, 2>>> g(n);for (int i = 0; i < m; i++) {int u, v, w;cin >> u >> v >> w;u--; v--;g[u].push_back({v, w});g[v].push_back({u, w});}// 引入二分算了int inf = 0x3f3f3f3f;function<int(int)> solve = [&](int limit) {vector<int> dp(n, inf);dp[s] = 0;priority_queue<K, vector<K>> pq;pq.push(K(0, s));while (!pq.empty()) {K cur = pq.top(); pq.pop();if (dp[cur.idx] < cur.cost) continue;if (cur.idx != s && arr[cur.idx] > limit) continue;for (auto &e: g[cur.idx]) {if (dp[e[0]] > cur.cost + e[1]) {dp[e[0]] = cur.cost + e[1];pq.push(K(dp[e[0]], e[0]));}}}return dp[e];};int base = solve(inf);if (base == inf) {cout << "Impossible\n"; } else {int l = 0, r = inf;while (l <= r) {int mid = l + (r - l) / 2;int ret = solve(mid);if (ret == base) {r = mid - 1;} else {l = mid + 1;}}cout << base << " " << l << "\n";}return 0;
}

RC-u5 贪心消消乐

分值: 30分

思路: 前缀和+最大子数组和问题转化

不过我觉得这题,

在消除格子后,上面的物体下滑规则没有述说清晰

这时间复杂度,其实我把控不住了,每次贪心获取最大子矩阵的和,已经优化到 O ( n 3 ) O(n^3) O(n3)

剩下的就是操作的次数了,感觉还是数据弱了

#include <bits/stdc++.h>using namespace std;const int64_t inf = 0x3f3f3f3f;
int solve(vector<vector<int>> &g, vector<int> &choice) {int n = g.size();// n * nvector<vector<int64_t>> pre(n + 1, vector<int64_t>(n + 1, 0));for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {pre[i + 1][j + 1] = pre[i + 1][j] + pre[i][j + 1] - pre[i][j];if (g[i][j] == 0) pre[i + 1][j + 1] += -inf * 2;else pre[i + 1][j + 1] += g[i][j];}}int64_t ansW = 0;// O(n^3)for (int j = 0; j < n; j++) {for (int k = 0; k <= j; k++) {int64_t acc = 0;int up = 0;for (int i = 0; i < n; i++) {int64_t d = pre[i+1][j+1] - pre[i+1][k] - pre[i][j+1] + pre[i][k];acc += d;if (acc < 0) {acc = 0;up = i + 1;continue;}vector<int> tmp = {k+1, up + 1, j+1, i+1};if (acc > ansW) {ansW = acc;choice = {k+1, up + 1, j+1, i+1};} else if (acc == ansW && tmp < choice) {choice = {k+1, up+1, j+1, i+1};}}}}return ansW;
}void fall(vector<vector<int>> &g, vector<int> &choice) {int n = g.size();for (int i = choice[1] - 1; i <= choice[3] - 1; i++) {for (int j = choice[0] - 1; j <= choice[2] -1 ; j++) {g[i][j] = 0;}}  int h = choice[3] - choice[1] + 1;for (int i = choice[1] - 2; i >= 0; i--) {for (int j = choice[0] - 1; j <= choice[2] -1 ; j++) {g[i + h][j] = g[i][j];g[i][j] = 0;}}
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr); cout.tie(nullptr);int n;cin >> n;vector<vector<int>> g(n, vector<int>(n));for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cin >> g[i][j];}}int64_t acc = 0;while (true) {vector<int> choice;int64_t ans = solve(g, choice);if (ans == 0) {break;}cout << "(" << choice[0] << ", " << choice[1] << ") (" << choice[2] << ", " << choice[3] << ") " << ans << '\n';acc += ans;fall(g, choice);}cout << acc << '\n';return 0;
}

写在最后

在这里插入图片描述

相关文章:

2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家

前言 题解 2024 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛)。 国赛比省赛难一些&#xff0c;做得汗流浃背&#xff0c;T_T. RC-u1 大家一起查作弊 分值: 15分 这题真的太有意思&#xff0c;看看描述 在今年的睿抗比赛上&#xff0c;有同学的提交代码如下&#xff1…...

【生成式AI文本生成实战】从GPT原理到企业级应用开发

目录 &#x1f31f; 前言&#x1f3d7;️ 技术背景与价值&#x1fa79; 当前技术痛点&#x1f6e0;️ 解决方案概述&#x1f465; 目标读者说明 &#x1f9e0; 一、技术原理剖析&#x1f4ca; 核心概念图解&#x1f4a1; 核心作用讲解&#x1f527; 关键技术模块说明⚖️ 技术选…...

【目标检测】RT-DETR

DETRs Beat YOLOs on Real-time Object Detection DETR在实时目标检测任务中超越YOLO CVPR 2024 代码地址 论文地址 0.论文摘要 YOLO系列因其在速度与精度间的均衡权衡&#xff0c;已成为实时目标检测领域最受欢迎的框架。然而我们观察到&#xff0c;非极大值抑制&#xf…...

数据库行业竞争加剧,MySQL 9.3.0 企业版开始支持个人下载

最新发现&#xff0c;Oracle 官方网站放开了 MySQL 9.3.0 企业版下载链接&#xff0c;个人用户也可以免费下载&#xff0c;不过只能用于学习、开发或者原型测试&#xff0c;不能用于生产环境。 通常我们都是下载 MySQL 社区版&#xff0c;不过 MySQL 企业版可以支持更多高级功能…...

QMK宏全面实战教程:从入门到精通(附17个实用案例)(理论部分)

🎯 QMK宏全面实战教程:从入门到精通(附17个实用案例) 大家好!作为一名机械键盘DIY爱好者和QMK固件深度玩家,今天我要带大家彻底掌握QMK宏的使用技巧!无论你是刚接触机械键盘的新手,还是想提升定制化水平的老玩家,这篇包含17个实战案例的教程都能满足你的需求! 🔍…...

H3C网络设备(交换机、路由器、防火墙)常用命令整理

H3C网络设备&#xff08;交换机、路由器、防火墙&#xff09;的常用命令整理。 一、H3C交换机常用命令 1. 基础操作 命令说明system-view进入系统视图quit返回上一级视图save保存配置display current-configuration查看当前配置&#xff08;类似 show run&#xff09;display…...

从前序与中序遍历序列构造二叉树(中等)

先从前序遍历列表取出第一个元素&#xff0c;这个元素就是根节点&#xff0c;然后从中序遍历中找到这个根节点&#xff0c;节点左侧就是该节点的左子树的节点集合&#xff0c;右侧就是该节点的右侧节点集合&#xff0c;然后递归构建左右子树。 /*** Definition for a binary t…...

ASP.NET/IIS New StreamContent(context.Request.InputStream) 不会立即复制整个请求流的内容到内存

StreamContent 的工作原理与内存占用 New StreamContent(context.Request.InputStream) 不会立即复制整个请求流的内容到内存。这个操作只是创建一个包装器&#xff0c;将原始的请求流&#xff08;context.Request.InputStream&#xff09;封装在 StreamContent 对象中&#x…...

Java大师成长计划之第24天:Spring生态与微服务架构之分布式配置与API网关

&#x1f4e2; 友情提示&#xff1a; 本文由银河易创AI&#xff08;https://ai.eaigx.com&#xff09;平台gpt-4-turbo模型辅助创作完成&#xff0c;旨在提供灵感参考与技术分享&#xff0c;文中关键数据、代码与结论建议通过官方渠道验证。 在微服务架构中&#xff0c;如何管理…...

Spring Security vs Shiro vs Sa-Token

一句话总结&#xff1a; Spring Security&#xff1a;大公司专业保安队&#xff0c;功能全面但配置复杂Shiro&#xff1a;轻便灵活的安保工具包&#xff0c;上手简单但功能有限Sa-Token&#xff1a;国产智能门禁系统&#xff0c;开箱即用&#xff0c;代码极简 对比表格&#x…...

MongoTemplate 基础使用帮助手册

前言 MongoDB 是一种流行的 NoSQL 数据库&#xff0c;适合存储大量的非结构化数据。MongoTemplate 是 Spring Data MongoDB 中的一个核心组件&#xff0c;它提供了一组丰富的 API 来与 MongoDB 进行交互。它封装了许多常见的数据库操作&#xff0c;使开发者能够轻松执行 CRUD 操…...

CCIE与HCIE哪个考试难度更大?

CCIE&#xff08;思科认证互联网专家&#xff09;与HCIE&#xff08;华为认证ICT专家&#xff09;的考试难度差异体现在技术体系、实验要求及评分标准。2023年全球数据显示&#xff0c;CCIE通过率约25%&#xff0c;HCIE通过率32%&#xff0c;但通过率不能完全反映实际挑战。 C…...

子查询对多层join优化记录

需求背景 查询某个用户是否具有某个角色 表 CREATE TABLE mdm_platform_role_user (ID bigint NOT NULL AUTO_INCREMENT,ROLE_ID varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,USER_ID varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci …...

容器编排利器-k8s入门指南

Kubernetes(K8s)入门指南:容器编排利器 什么是 Kubernetes? Kubernetes(常简称为K8s)是一个开源的容器编排平台,由 Google 开源并交由云原生计算基金会(CNCF)管理。它可以帮助我们自动化部署、扩展和管理容器化应用程序。 为什么需要 Kubernetes? 在微服务架构盛行的今…...

MyBatis—动态 SQL

MyBatis—动态 SQL 一、动态 SQL 的核心作用 动态 SQL 主要解决以下问题&#xff1a; 灵活性&#xff1a;根据不同的输入参数生成不同的 SQL 语句&#xff08;如条件查询、批量操作&#xff09;。 可维护性&#xff1a;减少重复代码&#xff0c;通过标签化逻辑提高 SQL 可读…...

解决“VMware另一个程序已锁定文件的一部分,进程无法访问“

问题描述 打开VMware里的虚拟机时&#xff0c;弹出"另一个程序已锁定文件的一部分&#xff0c;进程无法访问"如图所示&#xff1a; 这是VM虚拟机的保护机制。虚拟机运行时&#xff0c;为防止数据被篡改&#xff0c;会将所运行的文件保护起来。当虚拟机崩溃或者强制…...

如何创建一个不可变类

写在前面 如果对象在构造后无法更改&#xff0c;则该对象是不可变的。不可变对象不会以任何方式暴露其他对象来修改其状态; 对象的字段仅在构造函数内初始化一次&#xff0c;并且永远不会再次更改。 1.不可变类的用法 如今&#xff0c;每个软件应用程序的*“必备”规范都是分…...

outbox架构解说

Outbox 模式是一种用于实现数据一致性的架构模式&#xff0c;特别是在微服务架构中。 它确保在处理事务时&#xff0c;数据的原子性和最终一致性。 Outbox 模式的详细解说&#xff1a; 1. 概念与背景 背景&#xff1a;在微服务架构中&#xff0c;一个操作可能涉及多个服务&…...

PT2020 20触控I2C输出IC

1&#xff0e;产品概述 ● PT2020是一款电容式触摸控制ASIC&#xff0c;支持20通道触摸输入&#xff0c;I2C键值输出。可通过I2C调节灵敏度以及功能设置。算法带有走线自补偿功能&#xff0c;具有高抗干扰、宽工作电压范围的突出优势。适用于小家电&#xff0c;智能门锁等消费类…...

【GAN网络入门系列】一,手写字MINST图片生成

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 博主简介&#xff1a;努力学习的22级本科生一枚 &#x1f31f;​&#xff1b;探索AI算法&#xff0c;C&#xff0c;go语言的世界&#xff1b;在迷茫中寻找光芒…...

数据备份与恢复方案

数据备份与恢复方案 一&#xff0e;背景 为确保公司信息安全&#xff0c;防止关键数据丢失&#xff0c;应对突发事件&#xff0c;特制定全面的数据备份与恢复方案。该方案将对公司的各类文件资料进行分级管理&#xff0c;并针对不同级别的数据设定相应的备份策略和恢复流程。 二…...

Go的单测gomock及覆盖率命令

安装gomock&#xff1a; go get github.com/golang/mock/gomockgo get github.com/golang/mock/mockgen 使用 mockgen 生成 mock 代码: 参考 mockgen -sourceservice/user.go -destinationservice/mocks/mock_user_service.go -packagemocks go test -coverprofilecoverage.out…...

淘宝商家层级存在流量上限怎么办,如何突破流量上限?

在淘宝平台运营中&#xff0c;许多商家都会遇到一个共同难题&#xff1a;随着店铺层级的提升&#xff0c;流量增长却逐渐触及天花板。这种现象背后隐藏着平台复杂的流量分配机制&#xff0c;但并非无法破解。 一、流量上限的底层逻辑 淘宝根据商家层级&#xff08;1-7层&…...

【linux】Web服务—搭建nginx+ssl的加密认证web服务器

准备工作 步骤&#xff1a; 一、 新建存储网站数据文件的目录 二、创建一个该目录下的默认页面&#xff0c;index.html 三、使用算法进行加密 四、制作证书 五、编辑配置文件&#xff0c;可以选择修改主配置文件&#xff0c;但是不建议 原因如下&#xff1a; 自定义一个配置文…...

MySQL MCP 使用案例

## 概述 MySQL MCP&#xff08;MySQL Multi-Channel Protocol&#xff09;是MySQL的多通道协议实现&#xff0c;提供了高效的数据库连接池和负载均衡功能。本文档将介绍MySQL MCP的基本使用方法和常见案例。 ## 环境准备 ### 安装MySQL MCP bash pip install mysql-mcp ### 基…...

C#中UI线程的切换与后台线程的使用

文章速览 UI线程切换示例 后台线程使用示例 两者对比适用场景Application.Current.Dispatcher.InvokeTask.Factory.StartNew 执行同步性Application.Current.Dispatcher.InvokeTask.Factory.StartNew 一个赞&#xff0c;专属于你的足迹&#xff01; UI线程切换 在WPF应用程序…...

实验-实现向量点积-RISC-V(计算机组成原理)

目录 一、实验内容 二、实验步骤 三、源代码 四、实现效果 五、实验环境 六、实验小结与思考 一、实验内容 首先&#xff0c;我们用一个简单的“向量点积”运算作为热身。你将拿到一个不完整的汇编代码“task2-向量点积”&#xff0c;我们的目标是按照C语言描述的功能&a…...

【软考 霍夫曼编码的文档压缩比】

霍夫曼编码的文档压缩比计算基于字符频率的最优编码分配&#xff0c;以下是详细步骤及相关案例&#xff1a; 一、压缩比计算公式 [ \text{压缩比} \frac{\text{压缩前总比特数}}{\text{压缩后总比特数 编码表存储开销}} ] 通常以 比率&#xff08;如 3:1&#xff09; 或 百分…...

skywalking使用教程

skywalking使用教程 一、介绍 skywalking 1.1 概念 skywalking是分布式系统的应用程序性能监视工具&#xff0c;专为微服务、云原生架构和基于容器&#xff08;Docker、K8s、Mesos&#xff09;架构而设计。SkyWalking 是观察性分析平台和应用性能管理系统&#xff0c;提供分布…...

Tor推出Oniux新工具:为Linux应用提供网络流量匿名化

Tor项目近日发布了名为Oniux的新型命令行工具&#xff0c;该工具可将任何Linux应用程序的网络流量安全地路由至Tor网络&#xff0c;实现匿名化连接。 基于Linux命名空间的隔离技术 与依赖用户空间技巧的torsocks等传统方法不同&#xff0c;Oniux利用Linux命名空间&#xff08…...

LLaMA-Factory微调大模型Qwen2.5

1、开始ModelScope社区GPU环境 训练或微调模型都是非常耗费算力的。如果电脑的配置不高,可使用一些云服务器来做这项工作。如ModelScope(魔搭)社区的GPU环境,目前提供36小时免费运算,足够微调一个大模型了。 注册ModelScope(魔搭)社区账号(可能还要注册或认证阿里云账号)…...

docker(四)使用篇二:docker 镜像

在上一章中&#xff0c;我们介绍了 docker 镜像仓库&#xff0c;本文就来介绍 docker 镜像。 一、什么是镜像 docker 镜像本质上是一个 read-only 只读文件&#xff0c; 这个文件包含了文件系统、源码、库文件、依赖、工具等一些运行 application 所必须的文件。 我们可以把…...

算法练习:19.JZ29 顺时针打印矩阵

错误原因 总体思路有&#xff0c;但不够清晰&#xff0c;一直在边调试边完善。这方面就养成更好的构思习惯&#xff0c;以及涨涨经验吧。 分析&#xff1a; 思路&#xff1a;找规律 两个坑&#xff1a; 一次循环的后半段是倒着遍历的是矩阵不是方阵&#xff0c;要考虑行列…...

如何使用 Solana Yellowstone gRPC 重新连接和重放插槽

Yellowstone gRPC 是一个功能强大、可用于生产环境且经过实战检验的工具&#xff0c;用于流式传输实时的 Solana 数据。但在实际条件下&#xff0c;网络中断或服务器重启可能导致连接中断。如果没有适当的重连策略&#xff0c;你的应用程序可能会错过区块链的关键更新。 为了防…...

踩坑:uiautomatorviewer.bat 打不开

错误信息 运行 sdk\tools\bin\uiautomatorviewer.bat 报错 -Djava.ext.dirs..\lib\x86_64;..\lib is not supported. Use -classpath instead. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. 原因 java版…...

天能股份SAP系统整合实战:如何用8个月实现零业务中断的集团化管理升级

目录 天能股份SAP系统整合案例&#xff1a;技术驱动集团化管理的破局之路 一、企业背景&#xff1a;新能源巨头的数字化挑战 二、项目难点&#xff1a;制造业的特殊攻坚战 1. 生产连续性刚性需求 2. 数据整合三重障碍 3. 资源限制下的技术突围 三、解决方案&#xff1a;S…...

oracle主备切换参考

主备正常切换操作参考&#xff1a;RAC两节点->单机 &#xff08;rac和单机的操作区别&#xff1a;就是关闭其它节点&#xff0c;剩一个节点操作即可&#xff09; 1.主库准备 检查状态 SQL> select inst_id,database_role,OPEN_MODE from gv$database; INST_ID DATA…...

PHP 与 面向对象编程(OOP)

PHP 是一种支持面向对象编程&#xff08;OOP&#xff09;的多范式语言&#xff0c;但其面向对象特性是逐步演进而非原生设计。以下是关键分析&#xff1a; 1. PHP 对面向对象编程的支持 核心 OOP 特性&#xff1a; 类和对象&#xff1a; PHP 支持通过 class 关键字定义类&…...

预测模型开发与评估:基于机器学习的数据分析实践

在当今数据驱动的时代&#xff0c;预测模型已成为各行各业决策制定的核心工具。本文将分享我在COMP5310课程项目中开发预测模型的经验&#xff0c;探讨从数据清洗到模型优化的完整过程&#xff0c;并提供详细的技术实现代码。 ## 研究问题与数据集 ### 研究问题 我们的研究聚焦…...

2026《数据结构》考研复习笔记四(绪论)

绪论 前言时间复杂度分析 前言 由于先前笔者花费约一周时间将王道《数据结构》知识点大致过了一遍&#xff0c;圈画下来疑难知识点&#xff0c;有了大致的知识框架&#xff0c;现在的任务就是将知识点逐个理解透彻&#xff0c;并将leetcode刷题与课后刷题相结合。因此此后的过…...

2025-5-16Vue3快速上手

1、reactive创建 对象类型的响应式数据 &#xff08;1&#xff09; (2)reactive包裹的对象类型数据是Proxy对象类型 2、ref 创建对象类型的响应式数据 &#xff08;1&#xff09;使用js修改ref的数据时依然要加.value (2)ref的底层是用reactive做响应式数据的&#xff0c;因为…...

Lua中使用module时踩过的坑

在lua中设置某个全局对象(假如对象名为LDataUser)为nil时, LDataUser并不会变成nil, 但在有些情况下设置LDataUser nil时却真变成了nil&#xff0c;然后会导致后续再使用LDataUser时会抛nil异常, 后来发现是使用module搞的鬼&#xff0c;下面看看豆包AI给的解释&#xff0c;还…...

WinSCP用户管理FTP详解

1、下载winscp 官方下载地址&#xff1a;https://winscp.net/eng/index.php 2、登录ftp 3、桌面快捷键 4、首页介绍 5、文件搜索 模糊查询&#xff0c;关键字两边必须加’ * ‘号 6、编码报错 报错原因&#xff1a;使用’936&#xff08;ANS/OEM-简体中尉GBK&#xff09;’编…...

python基础语法(三-中)

基础语法3&#xff1a; 2.列表与元组&#xff1a; <1>.列表、元组是什么&#xff1f; 都用来存储数据&#xff0c;但是两者有区别&#xff0c;列表可变&#xff0c;元组不可变。 <2>.创建列表&#xff1a; 创建列表有两种方式&#xff1a; [1].a 【】&#x…...

NLP双雄争霸:GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码

NLP双雄争霸&#xff1a;GPT与BERT的生成-理解博弈——从技术分野到产业融合的深度解码 前言&#xff1a; 在自然语言处理&#xff08;NLP&#xff09;的版图上&#xff0c;GPT与BERT如双子星般照亮了智能时代的语言星空。一个是凭借千亿参数横扫生成任务的“文本造物主”&…...

JS手写代码篇---手写 instanceof 方法

2、手写 instanceof 方法 instancecof用于检测一个对象是否是某个构造函数的实例。它通常用于检查对象的类型&#xff0c;尤其是在处理继承关系时。 eg: const arr [1,2,3,4,5]console.log(arr instanceof Array); // trueconsole.log(arr instanceof Object); // true那这是…...

浮点数截断法:四舍五入的精确模拟

理论解释&#xff1a; 1. 目标 假设 a 3.14159&#xff0c;我们想四舍五入到 小数点后两位&#xff08;即 3.14 或 3.15&#xff09;。 2. 步骤拆解 (1) a * 100 把 a 放大 100 倍&#xff0c;让小数点后两位变成整数部分&#xff1a; 3.14159 * 100 314.159 (2) 0.5 关…...

c++ 类的语法3

测试下默认构造函数。demo1&#xff1a; void testClass3() {class Demo { // 没显示提供默认构造函数&#xff0c;会有默认构造函数。public:int x; // 普通成员变量&#xff0c;可默认构造};Demo demo1;//cout << "demo1.x: " << demo1.x << en…...

EasyExcel导出excel再转PDF转图片详解

封装EasyExcel导出工具类 相关的依赖自己网上搜索加上&#xff0c;这里不在阐述 Slf4j Service public class AgentExcelUtils {public String syncDynamicHeadWrite(String fileName,String sheetName,List<List<String>> headList,List<?> data) throws…...

【知识产权出版社-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…...