Compare commits

..

98 Commits

Author SHA1 Message Date
祀梦 190a0a4cdb ci(script): 添加临时禁用Git SSL验证并清理.gitignore
修改build-and-publish.bat脚本临时禁用Git SSL验证以提高兼容性
清理.gitignore文件,移除不再需要的资源路径并优化注释结构
2026-01-09 09:59:32 +08:00
祀梦 c0a061463b chore: 删除_publish子模块
不再需要该子模块,因此从代码库中移除
2026-01-09 09:59:24 +08:00
祀梦 56abd10b42 chore: 删除不再使用的资源记录文件
移除已废弃的 used_assets.txt 和 used_assets_v2.txt 文件
2026-01-08 17:18:43 +08:00
祀梦 d75133d0e4 chore: 更新资源文件和忽略规则
- 添加used_assets.txt和used_assets_v2.txt记录使用的资源
- 更新.gitignore添加resources目录忽略规则
- 删除过时的英语学习资源README文件
- 更新_publish子模块引用
2026-01-08 17:18:34 +08:00
祀梦 463e265fbe chore: 更新.gitignore以更精确地忽略公共目录资源
修改通配符语法从`*`到`**`以更好地匹配嵌套目录结构
添加特定目录`elysia`到允许列表
2026-01-08 17:05:35 +08:00
祀梦 b75fa7337f feat(docs): 添加爱莉希雅语录和技术文章,更新图片资源及配置
添加新的技术文章《原码、反码、补码》和《爱莉希雅语录》博客内容
更新多篇博客文章的封面图片路径,使用本地图片资源
添加6张爱莉希雅相关图片资源到public目录
更新.gitignore文件以允许特定图片资源
移除config.ts中不再使用的资源路径别名
添加.gitkeep文件确保空目录被跟踪
2026-01-08 17:05:22 +08:00
祀梦 09e9d996f8 docs(linux): 添加Linux零散命令文档并更新导航
添加包含常用Linux命令的文档,并在导航配置中增加对应链接
2026-01-04 09:50:14 +08:00
祀梦 d08ce7e3e7 docs(docker): 更新文档结构并添加Postgres部署指南
重构docker文档目录结构,将数据库相关文档移动到db子目录,其他服务文档移动到other子目录
添加Postgres部署文档,包含基本运行和持久化配置方案
2025-12-30 14:40:56 +08:00
祀梦 fc6a6a03b8 docs(config): 更新站点域名并添加页脚信息
将站点域名从 'https://notes.simengweb.com' 更改为 'https://www.simengweb.com' 以统一品牌标识
新增页脚内容,包含温馨提示和备案信息
2025-12-25 10:37:59 +08:00
祀梦 4a674ccc7a feat(docs): 添加docker运维文档及相关资源文件
添加docker运维相关文档,包括:
1. 创建docs/resources目录下的.gitkeep文件
2. 更新.gitattributes添加视频文件类型
3. 在导航栏添加docker运维入口
4. 新增docker运维文档目录结构
5. 添加mongodb和ETLCloud部署指南
2025-12-25 09:48:06 +08:00
祀梦 0fb0ad811b Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-12-24 16:20:38 +08:00
祀梦 98ec780ed9 feat(文档): 添加RImg组件并配置资源路径别名
删除未使用的Custom.vue组件,新增RImg组件用于处理资源图片路径
在vite配置中添加资源路径别名,简化图片引用方式
更新client.ts注册RImg组件
2025-12-24 16:20:35 +08:00
祀梦 a89746e0e8 docs(about): 更新关于页面的内容和结构
重构关于页面内容,增加个人介绍和技术栈的详细信息,优化整体结构使其更清晰易读。更新个人项目链接和联系方式,并添加网站成长记录的时间线。
2025-12-21 13:39:08 +08:00
祀梦 2cf5142b0e docs: 删除过时的BRICS2025竞赛样题文档 2025-12-17 13:45:38 +08:00
祀梦 1726ac9828 fix(ci): 更新构建脚本并修复umami分析配置
更新构建发布脚本以增强可靠性和清理逻辑
将umami分析ID和域名更新为最新配置
2025-12-15 17:50:00 +08:00
祀梦 01c3741b9a docs: 更新网站成长记录时间线
添加了网站迁移到小站的记录,并调整了时间顺序
2025-12-15 17:44:38 +08:00
祀梦 b7018f8423 refactor(scripts): 将启动和构建脚本移动到scripts目录
将start.sh、start.bat和build-and-publish.bat移动到scripts目录下
重构build-and-publish.bat脚本,增加错误处理和详细日志
2025-12-15 17:24:40 +08:00
祀梦 d9a089be3f refactor: 简化启动脚本并移除硬编码端口配置
移除start.bat中复杂的端口回退逻辑,改为直接调用npm脚本
同时从package.json中移除硬编码的端口配置
2025-12-15 16:40:32 +08:00
祀梦 c0ff3b29de chore: 更新依赖包版本
升级 js-yaml、mdast-util-to-hast、vite 和 vuepress-theme-plume 的依赖版本以获取最新功能和修复
2025-12-14 11:37:15 +08:00
Kawaxxxsaki 82324f6274 docs(web): 更新javascript基础文档中函数部分的描述
添加函数声明格式说明并完善函数定义描述
2025-12-05 13:32:37 +08:00
Kawaxxxsaki 3531360974 Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-12-01 15:21:44 +08:00
Kawaxxxsaki da188afd82 docs(web): 修正HTML列表与语义布局文档的标题
将文档标题从"test"修改为"html 列表与语义布局",使其更准确地反映文档内容
2025-12-01 15:21:37 +08:00
祀梦 ba9298852e docs: 删除过时的竞赛文档文件
移除两个已不再需要的竞赛相关文档文件:
1. docs/blog/technology/Xinchuang_Competition.md
2. docs/blog/competition/BRICS2025-ST-132.md

这些文档内容已过时且不再维护,删除以保持文档库的整洁性
2025-11-21 20:08:06 +08:00
祀梦 8ad5c45a42 docs: 添加站点域名配置以启用SEO优化 2025-11-21 19:38:57 +08:00
祀梦 bca2e0619c docs: 修正文档中的日期格式
将createTime的日期格式从"2025年11月11日 13:54:02"统一修改为"2025/11/11 13:54:02"
2025-11-11 21:44:20 +08:00
祀梦 5d510b0433 docs: 添加免费大模型API整合文档
添加一篇详细介绍百度千帆、讯飞星火、腾讯混元和SCNet平台免费/低价大模型API的文档
包含各平台API调用示例、价格对比和使用建议
2025-11-11 21:34:46 +08:00
Kawaxxxsaki 2f55fc7184 docs(web): 添加 JavaScript 基础知识文档
添加 JavaScript 基础知识文档,包含变量、数据类型、运算符、条件语句、循环、函数和 DOM 操作等内容,为初学者提供全面的学习资源
2025-11-10 14:45:12 +08:00
Kawaxxxsaki 474f335e94 docs(web): 添加HTML列表与语义布局文档
添加关于HTML列表(ul/ol/li)和语义化标签(header/nav/main等)的详细文档,包含基础语法说明、代码示例和练习作业,帮助初学者掌握HTML结构化编写
2025-11-02 20:50:33 +08:00
祀梦 2b9e5f9bd1 docs(web): 修正HTML标签文档中的代码格式和描述
统一使用反引号标记HTML标签,提高文档可读性和一致性
2025-11-02 20:43:42 +08:00
祀梦 43aa3f07e5 Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-11-02 20:32:39 +08:00
祀梦 c3e8cad947 ci: 添加构建和发布文档的批处理脚本
添加 build-and-publish.bat 脚本用于自动化文档构建和发布流程,包含依赖安装、构建、Git仓库更新和发布功能
2025-11-02 20:32:34 +08:00
Kawaxxxsaki b7c97d0f17 docs(web): 添加div标签和class属性的详细说明
扩展HTML文档,新增关于div标签和class属性的详细解释和使用示例,包括:
- div标签的基本特点和用途
- class属性的作用和实际应用场景
- 相关代码示例和练习作业
2025-11-02 20:21:36 +08:00
Kawaxxxsaki 2391018d79 chore: 更新mermaid依赖至11.12.1并删除过时文档
删除html2.md文档并简化html-tags-attributes.md内容
2025-11-02 19:59:19 +08:00
祀梦 b28ed8ebfe docs(web): 添加HTML常用标签与属性文档
新增HTML常用标签与属性的详细教程文档,包含基础标签使用、语义化布局、媒体元素等内容,并附带示例代码和练习作业
2025-11-02 19:44:44 +08:00
Kawaxxxsaki 799551073c docs(web): 添加HTML基础语法第二课文档
新增HTML基础语法第二课文档,介绍div标签和class属性的基本概念及用法
2025-11-02 19:13:40 +08:00
祀梦 3f8169ae56 Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-10-29 22:12:23 +08:00
祀梦 8c7e8ea6e3 docs(cryptography): 添加置换密码文档并更新导航配置
添加关于古典加密算法中置换密码的详细文档,包括栅栏密码和列移位置换的工作原理、数学表示及安全性分析。同时更新笔记导航配置以包含新文档链接。

新增信创竞赛环境搭建指南文档,包含系统配置要求和详细操作步骤。
2025-10-29 22:12:12 +08:00
Kawaxxxsaki 669f62549e Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-10-29 14:10:04 +08:00
Kawaxxxsaki c95b09f329 docs(notes): 修改文档标题为"仲夏夜之梦"
更新HTML示例中的文档标题,从"祀梦的花园"改为"仲夏夜之梦",保持文档内容的一致性
2025-10-29 14:09:59 +08:00
祀梦 868cc9b514 docs(密码学): 添加基础概念与术语章节和现代密码简述
为初学者添加密码学核心概念解释,包括明文/密文、加密/解密、密钥类型等基础术语。同时补充现代密码学中对称加密、非对称加密和数字签名的简要说明,帮助建立基本认知框架。
2025-10-29 13:45:37 +08:00
祀梦 60b9923302 Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-10-29 11:46:37 +08:00
祀梦 4db01489ee 测试新的编译脚本 2025-10-29 11:46:35 +08:00
Kawaxxxsaki c365afbd8a 更改首页信息 2025-10-29 11:35:44 +08:00
祀梦 b860b75dc8 docs: 移除contributors配置的注释
清理不再需要的注释以保持代码整洁

主要是测试服务器端的新的部署脚本
2025-10-29 09:49:07 +08:00
祀梦 a037e09c17 docs: 移除配置文件中冗余的注释
清理了VuePress配置文件中的注释,保持配置简洁
2025-10-29 09:43:01 +08:00
祀梦 faac3d94ff docs: 更新友链列表和网站标题
- 在friends.md中添加小小夏的友链信息
- 将网站标题从"祀梦的花园"改为"仲夏夜之梦"
2025-10-29 09:27:42 +08:00
祀梦 09ce0b7b78 docs(web): 更新Web开发学习笔记内容与结构
重构README文档,扩展Web开发概览内容并添加学习路径
- 重新组织文档结构,增加基础概念解释
- 添加前后端协作流程说明
- 提供详细学习路径与资源推荐
- 更新创建时间与标题以反映内容变化
2025-10-28 23:43:05 +08:00
祀梦 95de5b4d3e docs(web): 添加web开发学习笔记及配置
添加web开发学习笔记目录及相关文档,包括HTML/CSS/JavaScript基础知识讲解和练习示例。同时更新vuepress配置以支持新内容:
1. 新增web开发导航栏入口
2. 添加web笔记模块配置
3. 启用demo插件支持
2025-10-28 23:27:00 +08:00
祀梦 7b04ffbedd docs(英语语法): 完善核心语法与句型文档内容
添加详细的语法知识点,包括时态语态、从句分类、非谓语动词、倒装虚拟等核心内容,以及句式分析和长难句拆解策略
2025-10-27 19:55:57 +08:00
祀梦 c51e0977d7 docs(blog): 移除文档中的密码注释并设置实际密码
将文档中的密码字段从注释状态改为实际设置状态,以便保护相关内容
2025-10-27 19:38:35 +08:00
祀梦 7e1131844f Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-10-27 19:29:43 +08:00
祀梦 566b6cd385 feat(docs): 添加密码学基础文档和mermaid支持
新增密码学基础文档,包含古典加密算法和现代密码学介绍
添加mermaid图表支持以展示密码学概念
在导航栏新增技术理论分类
更新package.json添加mermaid依赖
2025-10-27 19:29:40 +08:00
Kawaxxxsaki 12181dbdcd 日期 2025-10-27 14:55:53 +08:00
Kawaxxxsaki 02ec95b12d Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-10-27 14:43:05 +08:00
Kawaxxxsaki e097e53603 修改phonics和文章 2025-10-27 14:42:57 +08:00
Kawaxxxsaki f3dda6078c 更新新文章以及phonics 2025-10-27 14:42:29 +08:00
祀梦 5dba6ac5b4 docs: 完善安装指南并增强启动脚本功能
- 扩展 README.md 中的安装说明,增加环境要求、详细步骤和常见问题排查
- 重写 start.bat 脚本,支持参数化配置并添加多重回退机制
- 优化开发服务器启动流程,提升不同环境下的兼容性
2025-10-22 16:26:29 +08:00
Kawaxxxsaki d7d342fd55 更新每日英语读物 2025-10-22 13:00:56 +08:00
Kawaxxxsaki b734f403b3 拆分阅读和写作模块 2025-10-22 11:13:21 +08:00
祀梦 086835d409 docs(solidity): 更新memory和storage存储类型的文档
补充关于Solidity中memory和storage存储类型的详细说明,包括生命周期、成本、默认行为、拷贝语义、内部函数引用传递、动态数组限制等内容。添加代码示例和最佳实践建议,帮助开发者更好地理解和使用不同存储类型。
2025-10-20 20:25:23 +08:00
祀梦 69312a780e feat(english): 添加英语学习笔记文档和导航配置
添加英语学习相关文档,包括基础配置、词汇、语法、听说读写等模块
更新导航栏和侧边栏配置以支持英语学习笔记
修改首页标题和描述以更符合内容定位
2025-10-20 19:55:15 +08:00
祀梦 b3b5198eac docs: 更新关于页面中的欢迎语
将欢迎语从"泥嚎~"改为更常见的"嗨~",使语气更加自然友好
2025-10-20 14:41:24 +08:00
祀梦 771fa51fb9 docs(solidity): 修正hardhat初始化命令的拼写错误
将`--init`改为正确的`init`命令
2025-10-17 23:32:49 +08:00
祀梦 90ed801658 Merge branch 'main' of https://gitea.simengweb.com/si-meng-spec/SiMengWebSite_Notes 2025-10-14 15:39:37 +08:00
祀梦 f0e768d66f 更新 2025-10-14 15:39:08 +08:00
祀梦 6a508cc8d4 更新文章 2025-10-14 15:38:57 +08:00
祀梦 6ac5000c86 更新文章 2025-10-11 23:48:28 +08:00
祀梦 df01754706 更新文章 2025-10-10 17:33:17 +08:00
祀梦 7e413866c2 文章更新 2025-10-10 10:54:35 +08:00
si-meng-spec 95dc8fecf9 更新文章 2025-10-05 17:43:04 +08:00
si-meng-spec 807e222e8a Merge branch 'main' of https://gitea.simengweb.com/simeng/SiMengWebSite_Notes 2025-10-05 17:39:34 +08:00
si-meng-spec ba6702c880 更新文章 2025-10-05 17:35:32 +08:00
si-meng-spec 5984402fb2 更新文章 2025-10-05 17:35:06 +08:00
si-meng-spec 9f28803260 更新文章 2025-10-02 12:08:11 -04:00
si-meng-spec e2c883233c 更新文章 2025-10-02 03:56:20 -04:00
si-meng-spec 564040b8c3 修改配置文件 2025-10-01 06:01:22 -04:00
si-meng-spec 44689736d5 配置 umami 2025-10-01 05:34:17 -04:00
si-meng-spec cb3747d38c 更新文章 2025-10-01 03:21:10 -04:00
si-meng-spec eeb0031bf5 修改文章内网 2025-09-30 07:49:12 -04:00
si-meng-spec 3130dcbbc3 修改网站图标 2025-09-30 07:48:55 -04:00
si-meng-spec 056e58c5bd 操作 WSL2 2025-09-30 05:04:16 -04:00
si-meng-spec 89a3f2182a 在 Windows10 上部署 WSL2 并安装 ubuntu 20.04 虚拟机 2025-09-30 03:20:17 -04:00
si-meng-spec 8eb832de6c 配置 Waline 评论 2025-09-29 08:39:59 -04:00
si-meng-spec d831135553 配置封面图,更新文章 2025-09-29 04:24:24 -04:00
si-meng-spec 7ac31a3984 文章更新 2025-09-29 03:24:19 -04:00
si-meng-spec 3bb7ee6796 创建 Linux 和 区块链 运维的样例 2025-09-28 08:03:21 -04:00
si-meng-spec 12fdf56539 创建 solidity 编程语言的样例 2025-09-28 07:37:34 -04:00
si-meng-spec 173a99a626 更新提交用户名 2025-09-24 00:02:33 -04:00
si-meng-spec 99a79b4af6 修改关于界面的位置,C++ 基础 2025-09-23 23:53:04 -04:00
si-meng-spec 1f02282ad6 更新贡献者名称 2025-09-22 10:00:45 -04:00
si-meng-spec 218c43abd9 更新介绍 2025-09-22 09:27:05 -04:00
si-meng-spec 48130b5d8f 关于 C++ 的初步笔记 2025-09-22 09:23:42 -04:00
si-meng-spec cc419e6541 关于 LeetCode 算法的初步笔记 2025-09-22 08:58:52 -04:00
si-meng-spec 7e9b7e6a2a 添加工具栏和友链 2025-09-22 08:08:44 -04:00
si-meng-spec d2513b2158 配置显示贡献者 2025-09-22 07:25:37 -04:00
si-meng-spec 38d8fccaa0 初始配置,第一篇文章 2025-09-22 07:15:29 -04:00
si-meng-spec 3029cc0fdf 初始化 2025-09-21 06:36:45 -04:00
root 6465c714e0 初始化项目:创建 VuePress Plume 网站 2025-09-21 06:30:20 -04:00
21 changed files with 411 additions and 3069 deletions
+1 -1
View File
@@ -60,7 +60,7 @@ export default defineUserConfig({
blog: { blog: {
postCover: { postCover: {
layout: 'left', layout: 'left',
// width: 300, width: 300,
compact: true compact: true
} }
}, },
+4 -4
View File
@@ -16,10 +16,6 @@ export default defineNavbarConfig([
text: '英语学习笔记', text: '英语学习笔记',
link: '/subject/english/', link: '/subject/english/',
}, },
{
text: '系统分析师',
link: '/subject/certification/',
},
], ],
}, },
{ {
@@ -29,6 +25,10 @@ export default defineNavbarConfig([
text: 'LeetCode', text: 'LeetCode',
link: '/programming/leetcode/', link: '/programming/leetcode/',
}, },
{
text: 'C++',
link: '/programming/cplusplus/',
},
{ {
text: 'Solidity', text: 'Solidity',
link: '/programming/solidity/', link: '/programming/solidity/',
+13 -19
View File
@@ -15,6 +15,18 @@ const LeetCode = defineNoteConfig({
} }
] ]
}) })
const cPlusPlus = defineNoteConfig({
dir: 'programming',
link: '/programming/cplusplus/',
sidebar: [
{ text: "C++ 学习笔记", link: "/programming/cplusplus/" },
{
text: "基础配置与开发工具", prefix: "/basis", items: [
{ text: "C++ 环境配置", link: "/programming/cplusplus/basis/" }
]
}
]
})
const english = defineNoteConfig({ const english = defineNoteConfig({
dir: 'subject', dir: 'subject',
link: '/subject/english/', link: '/subject/english/',
@@ -62,24 +74,6 @@ const english = defineNoteConfig({
} }
] ]
}) })
const certification = defineNoteConfig({
dir: 'subject',
link: '/subject/certification/',
sidebar: [
{ text: "系统分析师简介", link: "/subject/certification/" },
{
text: "第一篇 基础知识", prefix: "/certification/sys-analyst", items: [
{ text: "第一章 绪论", link: "/subject/certification/sys-analyst/" },
{ text: "第二章 数学与工程基础", link: "/subject/certification/sys-analyst/math/" }
],
},
{
text: "第二篇 关键技术", prefix: "/certification/sys-analyst", items: [
{ text: "第十章 系统规划与分析", link: "/subject/certification/sys-analyst/planning/" }
],
}
]
})
const solidity = defineNoteConfig({ const solidity = defineNoteConfig({
dir: 'programming', dir: 'programming',
link: '/programming/solidity/', link: '/programming/solidity/',
@@ -196,5 +190,5 @@ const web = defineNoteConfig({
export default defineNotesConfig({ export default defineNotesConfig({
dir: 'notes', dir: 'notes',
link: '/', link: '/',
notes: [LeetCode, english, certification, solidity, blockchain, linux, docker, cryptography, web], notes: [LeetCode, english, cPlusPlus, solidity, blockchain, linux, docker, cryptography, web],
}) })
Binary file not shown.

Before

Width:  |  Height:  |  Size: 629 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 384 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 658 KiB

@@ -1,267 +0,0 @@
---
title: 第十四届蓝桥杯大赛软件赛国赛 Python 研究生组(正在更新)
createTime: 2026/01/09 15:57:22
cover: /images/elysia/8.jpg
coverStyle:
layout: right
permalink: /archives/b1c77a1d-d402-4788-8049-fa3aeb12ebd0/
---
## 一、X 质数
### 题目
题目链接:0X质数 - 蓝桥云课
### 问题描述
对于一个含有 M 个数位的正整数 N ,任意选中其中 K 个不同的数位(0≤K<M),将这些选中的数位删除之后,余下的数位按照原来的顺序组成了一个新的数字 P 。如果至少存在一个 P 是质数,我们就称 N 是一个 X 质数。例如,对于整数 7869 ,我们可以删去 7 和 6 ,得到一个新的数字 89 ,由于 89 是一个质数,因此 7869 是一个 X 质数。又如,对于整数 77 ,可以删去一个 7 后变为质数 7 ,因此 77 也是一个 X 质数。
请问 1 (含)至 1000000(含)中一共有多少个不同的 X 质数。
### 解析
先通过埃氏筛,获取到范围内的所有质数。然后遍历每个数字的所有子串,查看是否满足 X 质数的定义,我们只要找到一个符合条件的子串即可退出循环,只要子串是质数或者 X 质数,我们都可以认定当前数字为 X 质数。
这里在寻找每个数的子串的时候,可以采用二进制的方式,详情查看:通过位运算快速生成所有的子序列|祀梦的个人博客
### 答案
```python
# import os
# import sys
# def is_prime(n):
# _nums = [True] * (n + 1)
# _nums[0] = _nums[1] = False
# for i in range(2, n):
# if _nums[i]:
# for j in range(i ** 2, n + 1, i):
# _nums[j] = False
# return _nums
# N = 1000000
# nums = is_prime(N)
# ans = 0
# for num in range(N + 1):
# digits = [int(n) for n in str(num)]
# length = len(str(num))
# for mask in range(1,1 << length):
# subseq = 0
# for i in range(length):
# if mask & ( 1 << i ):
# subseq = subseq * 10 + digits[i]
# if nums[subseq]:
# nums[num] = True
# ans += 1
# break
# print(ans) # 989457
print(989457)
```
## 二、顶板上的正方形
### 题目
题目链接:0钉板上的正方形 - 蓝桥云课
### 问题描述
小蓝有一个大小为 10×1010×10 钉板,如下图所示,上面等距分布着 10×1010×10 个钉槽(上下/左右相邻的钉槽之间的距离均相同)。其中有一些钉槽上面有钉子, 在图中用红色来进行标注,白色则表示此处没有钉子。小蓝喜欢用橡皮筋在钉 子上围出正方形图案,即选择钉板上的四个钉子,将其作为正方形的四个顶点, 从而把橡皮筋拉伸为一个正方形。
现在,小蓝想要知道在这个钉板上,可以围出多少种边长不同的正方 形?(相同边长的正方形均视作是同一种,不用考虑正方形的位置)。图中展示 了三种不同边长的正方形,其中蓝色线条表示橡皮筋。
### 解析
参考了评论区的大哥(马国良的个人主页 - 蓝桥云课)的思路,如下图所示
dr 为行之间的差距
dc 为列之间的差距
我们遍历 A 和 B,计算 C 和 D 的坐标,分别为 ( x2 + dr , y2 - dc )( x1 + dr , y1 - dc )
然后确保CD没有超过棋盘范围并且都有钉子即可
### 答案
```python
import os
import sys
from itertools import combinations
arr = [
[1, 1, 0, 1, 0, 1, 1, 1, 1, 1],
[1, 1, 1, 0, 0, 1, 1, 1, 1, 0],
[1, 1, 0, 0, 1, 0, 1, 1, 1, 1],
[1, 0, 1, 1, 0, 1, 1, 1, 1, 0],
[1, 0, 1, 0, 1, 1, 1, 1, 0, 0],
[1, 0, 0, 1, 0, 1, 0, 1, 0, 1],
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 1, 0, 1, 0, 1, 1, 1, 1],
[1, 0, 1, 0, 0, 1, 0, 1, 0, 0]
]
points = [(i, j) for i in range(10) for j in range(10) if arr[i][j]]
squares = set()
for (x1, y1), (x2, y2) in combinations(points, 2):
dx, dy = x1 - x2, y1 - y2
x3 = x2 + dy
y3 = y2 - dx
x4 = x1 + dy
y4 = y1 - dx
if all(0 <= coord < 10 for coord in [x3, y3, x4, y4]):
if arr[x3][y3] and arr[x4][y4]:
squares.add(dx*dx + dy*dy)
print(len(squares))
```
## 三、整数变换
### 题目
题目链接:0整数变换 - 蓝桥云课
### 问题描述
小蓝有一个整数 n。每分钟,小蓝的数都会发生变化,变为上一分钟的数减去上一分钟的数的各个数位和。
例如,如果小蓝开始时的数为 23,则下一分钟变为 23−(2+3)=18,再下一分钟变为 18−(1+8)=9,再下一分钟变为 9−9=0,共经过了 3 分钟变为 0。
给定一个正整数,请问这个数多少分钟后变为 0。
### 解析
这题直接暴力就过了。
Python3 跑出来只能通过 60% 的测试用例,用 PyPy3 就好了。
### 答案
```python
import os
import sys
num = int(input())
count = 0
while num != 0:
num -= sum(map(int,str(num)))
count += 1
print(count)
```
### 整数变换的第二种做法
### 答案
```python
import os
import sys
# 对 1000 以内的数进行预处理
# difference[i][j] 代表每次减去 sum_digits(i) + j 之后,剩余的值,可能为负数
# step[i][j] 记录最终结果
# 题目中数字的最大值范围为 10的9 次方,我们每一步多减去的 j 值代表的其实是前六位的和
# j 最大也就是 54( 前六位都是9 )
difference = [[0 for _ in range(55)] for _ in range(1000)]
step = [[0 for _ in range(55)] for _ in range(1000)]
# 这里要考虑一下边界情况,有可能后三位为 0 前六位还有
# 这个时候要减去前六位的值
# 并且步数需要加一步
difference[0] = [-num for num in range(55)]
step[0] = [0] + [1 for num in range(54)]
# 先计算出 0 ~ 999 以内的数的值
for i in range(1,1000):
# 遍历所有可能的 j 值
for j in range(55):
ans,num = 0,i
while num > 0:
num -= ( sum(map(int,str(num))) + j )
ans += 1
difference[i][j] = num
step[i][j] = ans
# 当 num 小于 1000 的时候直接返回
num = int(input())
if num < 1000:
print(step[num][0])
else:
ans = 0
while num:
if num < 1000:
ans += step[num][0]
break
# x 为前六位
# y 为后三位
x = num // 1000
y = num % 1000
# 直接加上步数,以及溢出的值即可
ans += step[y][sum(map(int,str(x)))]
num = x * 1000 + difference[y][sum(map(int,str(x)))]
print(ans)
```
## 四、火车运输
## 五、最大区间
### 题目
题目链接:0最大区间 - 蓝桥云课
### 问题描述
给定一个长度为 n 的序列 Ai​,求 L,R 使 (RL+1)⋅min(AL,AL+1,…,AR) 尽可能大,其中 min⁡ 表示最小值。
你只需要输出最大的值即可,不需要输出具体的 L,R。
### 解析
这道题要求给定字符串中的 (RL+1)⋅min(AL,AL+1,…,AR) 的最大值,每次计算区间内的最小值再扩展区间很麻烦,我们可以转换一下思路以当前元素为区间内的最小元素,视为右边界,然后不断向左边扩展,一直到小于当前元素的位置停下,就可以得到当前区间的结果。(这里为什么不用向右边扩展,因为如果存在这种情况的话,右边向左扩展的时候会包括这一段)我们可以采用单调递增栈来加快寻找的速度,0 是为了确保清空栈。
可以用下面这个例子 debug 一下程序查看运行过程。
n = 6
A = [1,2,3,2,3,2]
(感觉解释的还是不太够清楚,有啥问题可以直接评论)
### 答案
```python
import os
import sys
n = int(input())
A = list(map(int,input().split()))
A.append(0)
stack = []
ans = 0
for i in range(n+1):
while stack and A[i] <= A[stack[-1]]:
prev_i = stack.pop()
L = stack[-1] if stack else -1
ans = max( ( i - L - 1 ) * A[prev_i] ,ans)
stack.append(i)
print(ans)
```
## 六、等腰三角形
## 七、连续数组
## 八、质数排序
## 九、选段排序
## 十、最长同类子串
File diff suppressed because it is too large Load Diff
@@ -1,85 +0,0 @@
---
title: 通过位运算快速生成所有的子序列
createTime: 2026/01/09 16:15:00
cover: /images/elysia/10.jpg
coverStyle:
layout: right
permalink: /archives/ea20bdda-0d49-4472-a647-2e305a930d11/
---
## 一、子序列的本质
子序列是从原字符串中选择任意数量的字符(可以是 0 个、1 个、...、所有字符),且保持这些字符的原始顺序形成的字符串。
例如:原字符串 `"abc"` 的子序列包括 `"a"`, `"b"`, `"c"`, `"ab"`, `"ac"`, `"bc"`, `"abc"` 和空字符串 `""`(共 $2^3 = 8$ 种可能性)。
## 二、位掩码(Bitmask)的引入
假设字符串长度为 `n`,我们可以用一个 `n` 位的二进制数来表示是否选择某个字符:
- 二进制数的每一位对应原字符串的一个字符。
- 如果某一位是 `1`,表示选择对应的字符;如果是 `0`,表示不选择。
例如,对于字符串 `"abc"``n=3`):
| 二进制数 | 十进制 | 选择情况 | 生成子序列 |
| :--- | :--- | :--- | :--- |
| `101` | 5 | 选择第 1 个字符 "a" 和第 3 个字符 "c" | `"ac"` |
| `010` | 2 | 选择第 2 个字符 "b" | `"b"` |
## 三、遍历所有可能的二进制数
所有可能的二进制数范围是 `0`(全 0)到 $2^n - 1$(全 1)。例如,`n=3` 时:
- 范围是 `000` (0) 到 `111` (7),共 $2^3 = 8$ 种可能。
- 每个二进制数对应一种子序列选择方式。
- 如果包含 `000` (0),对应空字符串 `""`。若不需要空字符串,可以从 `1` 开始遍历。
## 四、如何将二进制数转换为子序列?
### 1. 外层循环:遍历所有可能的二进制数
对于 `n=3`,遍历 `1` (`001`) 到 `7` (`111`)。
### 2. 内层循环:检查每一位是否为 1
- 对于每个二进制数 `mask`,遍历其每一位 `i`(从 `0``n-1`)。
- 如果 `mask` 的第 `i` 位是 `1`(即 `mask & (1 << i)` 为真),则将原字符串的第 `i` 个字符加入子序列。
## 五、代码示例
```python
def get_all_subsequences(s):
n = len(s)
subsequences = []
# 遍历 1 到 2^n - 1 (排除空字符串)
for mask in range(1, 1 << n):
subseq = []
for i in range(n):
# 检查 mask 的第 i 位是否为 1
if mask & (1 << i):
subseq.append(s[i])
subsequences.append(''.join(subseq))
return subsequences
# 测试
print(get_all_subsequences("abc"))
# 输出: ['a', 'b', 'ab', 'c', 'ac', 'bc', 'abc']
```
## 六、应用场景
在处理类似 **X 质数** 的问题时,我们需要检查一个数字的所有数字子序列。通过这种位运算的方式,可以非常高效地生成所有组合并进行判断。
```python
def solve_x_prime(num):
s = str(num)
n = len(s)
for mask in range(1, 1 << n):
subseq_str = ""
for i in range(n):
if mask & (1 << i):
subseq_str += s[i]
# 将生成的子序列转换为整数并判断是否为质数
p = int(subseq_str)
if is_prime(p):
return True
return False
```
@@ -1,78 +0,0 @@
---
title: 快速幂算法详解
createTime: 2026/01/09 16:05:00
cover: /images/elysia/9.jpg
coverStyle:
layout: left
permalink: /archives/1325a3bf-91d7-43ff-9630-e894549e12c1/
---
## 简介
快速幂算法是用于快速计算的算法,可以用于快速的处理大整数幂的场景。
最简单的 for 循环求数字的 n 次幂需要 $O(n)$ 的时间复杂度。快速幂方法可以达到 $O(\log N)$ 的时间复杂度。
快速幂的核心思想是将指数拆分,以达到快速计算的目的。
## 快速幂 - 二进制法
### 原理
二进制法的核心思想是将指数转换为二进制形式,通过逐位处理并结合平方运算减少乘法次数。
**二进制分解指数**
将指数 $n$ 表示为二进制形式,例如 $n=13$ 对应二进制为 `1101`,即 $13=8+4+1=2^3+2^2+2^0$。
**幂的拆分**
根据二进制分解,$a^n=a^{2^k} \times a^{2^{k-1}} \times \dots \times a^{2^0}$,其中仅当二进制位为 1 时,对应项被保留。
**逐位处理与平方加速**
- 从最低位到最高位依次处理二进制每一位。
- 若当前位为 1,则将当前的底数累乘到结果中。
- 每一步将底数平方,为处理更高位做准备。
### 代码示例
```python
def power(base, exp):
res = 1
while exp > 0:
if exp & 1:
res *= base
base *= base
exp >>= 1
return res
```
## 快速幂 - 折半法
### 原理
折半法的核心公式如下:
我们要快速计算 $a$ 的 $n$ 次方:
- 当 $n$ 为奇数的时候:$a^n = a \cdot (a^2)^{(n-1)/2}$
- 当 $n$ 为偶数的时候:$a^n = (a^2)^{n/2}$
- 当 $n$ 为 0 的时候,直接返回 1
通过递归或迭代,将大指数问题分解为小指数问题,最后合并结果。
### 代码示例
```python
def power(base, exp):
if exp == 0: return 1
half = power(base, exp // 2)
return half * half * (base if exp % 2 else 1)
```
## 两种方法对比
| 特性 | 二进制法 | 折半法 |
| :--- | :--- | :--- |
| **实现方式** | 迭代 + 位运算 | 递归/迭代 + 分治 |
| **时间复杂度** | $O(\log N)$ | $O(\log N)$ |
| **空间复杂度** | $O(1)$ | $O(\log N)$ (递归) |
两者都可以实现在指数时间解决问题,二进制方法比折半法更加的省空间。
@@ -1,301 +0,0 @@
---
title: Python 字符串格式化全指南
createTime: 2026/01/09 14:00:48
cover: /images/elysia/7.jpg
coverStyle:
layout: left
permalink: /archives/56ea3081-9c69-43d7-96c8-2812ec08be2c/
---
## 字符串格式化
我们经常会输出类似“亲爱的xxx你好!你xx月的话费是xx,余额是xx”之类的字符串,而xxx的内容都是根据变量变化的,所以需要一种简便的格式化字符串的方式。
在 Python 中可以使用很多种的字符串格式化方式,下面逐个列举。
### 字符串格式化的四种方式
#### 一、 %号
在Python中,可以采用%来实现字符串格式化,%号格式化字符串的方式是从Python诞生之处就已经存在,时至今日,Python官方也未放弃使用%号,但是也不推荐使用这种格式化方式。
在字符串内部,`%s`表示用字符串替换,`%d`表示用整数替换,有几个占位符,后面就跟几个变量或值,顺序要对应。如果只有一个`%?`,括号可以省略。如果不太确定应该用什么,可以使用`%s`,它会把任何数据类型转换为字符串。
有的时候,字符串里的%是一个普通的字符,这个时候就需要转义,用`%%`来表示一个%。
下面是常见的字符串格式化替代符:
- `%c`:格式化字符以及ASCII码
- `%s`:格式化字符串
- `%d`:格式化整数
- `%u`:格式化无符号整数
- `%o`:格式化无符号八进制数
- `%x`:格式化无符号十六进制数
- `%X`:格式化无符号十六进制数(大写)
- `%f`:格式化浮点数,可指定小数点后精度
- `%e`:用科学表示法格式化浮点数
- `%E`:同 %e
- `%g`%f 和 %e 的简写
- `%G`%f 和 %E 的简写
**Python 字符串格式化的代码示例:**
```python
a=15 #定义变量a并赋值
b=12345678.1234567 #定义变量b并赋值
strs="I love Python!" #定义字符串strs并赋值
print("a=%05d"%a) #使用m控制输出位数,空位补0
print("b=%8.3f"%b) #输出b,用m.n控制输出的长度和小数点位数
print("%s"%strs) #正常输出字符串,用于做比较
print("%17s"%strs) #使用m控制输出字符串长度
print("%r"%strs) #使用%r输出字符串
print("%-17.5s"%strs) #使用-m.n进行左对齐、限制字符串长度和字符位数
print("a={0:05}".format(a)) #输出5位数字空位补0
print("b={0:,.3f}".format(b)) #输出b,用千分位分隔并保留3位小数
print("{0:*^30}".format(strs)) #居中且使用*填充
```
**运行结果:**
```text
a=00015
b=12345678.123
I love Python!
I love Python!
'I love Python!'
I lov
a=00015
b=12,345,678.123
********I love Python!********
```
需要注意的一点是,Python中的中文大小为两字符,英文为一字符,所以说在写的时候要格外留意。
#### 二、 str.format 格式化
该format方法是在Python2.6中引入的,是字符串类型的内置方法。因为str.format的方式在性能(后面测试了一下,比%要慢)和使用的灵活性上都比%更胜一筹,所以推荐使用。
**1. 使用位置参数**
```python
# 按照位置一一对应
print('{} asked {} to do something'.format("egon","lili"))
print('{} asked {} to do something'.format("lili","egon"))
```
**2. 使用索引**
```python
# 使用索引取对应位置的值
print('{0}{0}{1}{0}'.format('x','y'))
```
**3. 使用关键字参数 or 字典**
```python
# 可以通过关键字or字典的方式格式化,打破了位置带来的限制与困扰
print('我的名字是 {name}, 我的年龄是 {age}.'.format(age=18, name='egon'))
kwargs = {'name': 'egon', 'age': 18}
print('我的名字是 {name}, 我的年龄是 {age}.'.format(**kwargs)) # 使用**进行解包操作
```
关于解包详解可以参看:<https://blog.csdn.net/qq_36667170/article/details/121401668>
**4. 填充和格式化**
```python
# 先取到值,然后在冒号后设定填充格式:[填充字符][对齐方式][宽度]
# *<10:左对齐,总共10个字符,不够的用*号填充
print('{0:*<10}'.format('开始执行')) # 开始执行******
# *>10:右对齐,总共10个字符,不够的用*号填充
print('{0:*>10}'.format('开始执行')) # ******开始执行
# *^10:居中显示,总共10个字符,不够的用*号填充
print('{0:*^10}'.format('开始执行')) # ***开始执行***
```
**5. 进度和进制**
```python
print('{salary:.3f}'.format(salary=1232132.12351)) #精确到小数点后3位,四舍五入
print('{0:b}'.format(123)) # 转成二进制,结果为:1111011
print('{0:o}'.format(9)) # 转成八进制,结果为:11
print('{0:x}'.format(15)) # 转成十六进制,结果为:f
print('{0:,}'.format(99812939393931)) # 千分位格式化
```
#### 三、 f-Strings 格式化
虽然str.format()比%格式稍微高级了一些,但是它还是有自己的缺陷。当需要传入的字符串过多时,仍然会显得非常冗长。于是在Python3.6中引入了f-strings,不仅比str.format更简洁,性能上也更胜一筹。
f-string是以 f 或 F 开头的字符串,核心在于字符串中符号{}的使用。
**1. {} 中可以是变量名**
```python
name = 'egon'
age = 18
print(f'{name} {age}') # egon 18
print(F'{age} {name}') # 18 egon
```
**2. {} 中可以是表达式**
```python
# 可以在{}中放置任意合法的Python表达式,会在运行时计算
# 比如:数学表达式
print(f'{3*3/2}') # 4.5
# 比如:函数的调用
def foo(n):
print('foo say hello')
return n
print(f'{foo(10)}') # 会调用foo(10),然后打印其返回值
# 比如:调用对象的方法
name='EGON'
print(f'{name.lower()}') # egon
```
**3. 在类中的使用**
```python
class Person(object):
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f'{self.name}:{self.age}'
def __repr__(self):
return f'===>{self.name}:{self.age}<==='
obj=Person('egon',18)
print(obj) # 触发__str__
print(obj.__repr__()) # 触发__repr__
# 在f-Strings中的使用
print(f'{obj}') # 触发__str__
print(f'{obj!r}') # 触发__repr__
```
**4. 多行 f-Strings**
```python
# 当格式化字符串过长时,如下列表info
name = 'Egon'
age = 18
gender = 'male'
hobbie1='play'
hobbie2='music'
hobbie3='read'
info = [f'名字:{name}年龄:{age}性别:{gender}',
f'第一个爱好:{hobbie1}第二个爱好:{hobbie2}第三个爱好:{hobbie3}']
# 我们可以回车分隔到多行,注意每行前都有一个f
info = [
# 第一个元素
f'名字:{name}'
f' 年龄:{age}'
f' 性别:{gender}',
# 第二个元素
f'第一个爱好:{hobbie1}'
f' 第二个爱好:{hobbie2}'
f' 第三个爱好:{hobbie3}'
]
print(info)
```
**5. 引号的嵌套**
```python
# 当字符串嵌套发送冲突时,与正常的字符串处理方式是一样的
# 1、外层为单引号,内层嵌套也为单引号,并且想要输入的内容也为单引号,那么外层需要改用双引号
print("my name is 'egon'")
# 2、外层为单引号,内层嵌套也为单引号,并且想要输入的内容也为单引号,需要用到转义
print('my name is \'egon\'')
```
**6. 括号的处理**
需要注意的是,反斜杠可以用来进行字符转义,但不能用在 {} 的表达式中,注释 # 号也不能出现在 {} 的表达式中。
```python
f'{1\2}' # 语法错误
f'{x#}' # 语法错误
```
所以当我们的输出的结果中需要包含{}时,类似于之前输出%的做法,需要在原有的基础上再套一层。
```python
print(f'{{天王盖地虎}}') # {天王盖地虎}
print(f'{{{{天王盖地虎}}}}') # {{天王盖地虎}}
```
#### 四、 三种字符串格式化方式的性能对比
```python
from timeit import timeit
def test_s():
name = 'Egon'
age = 18
return '%s:%s.' % (name, age)
def test_format():
name = 'Egon'
age = 18
return '{}:{}.'.format(name, age)
def test_f_strings():
name = 'Egon'
age = 18
return f'{name}:{age}.'
res1 = timeit(test_s, number=1000000)
res2 = timeit(test_format, number=1000000)
res3 = timeit(test_f_strings, number=1000000)
print(res1) # 0.3338866999838501
print(res2) # 0.40734450006857514
print(res3) # 0.24273910000920296 最快
```
#### 五、 标准库模版
从Python2.4起,Python标准库string引入了Template也可以用来格式化字符串,所以说,与前三种方式的一个显著的区别就是:Template属于Python语言的核心语法特征,使用方式如下。
```python
from string import Template
name='EGON'
t = Template('Hello $name!')
res=t.substitute(name=name)
print(res) # Hello EGON!
```
还有另外一个不同的地方是,这个模板字符串不支持类似str.format那样的进制转换,需要自己处理。
```python
from string import Template
name='EGON'
templ_string = 'Hello $name, there is a $error error!!!'
res=Template(templ_string).substitute(name=name, error=hex(12345))
print(res) # Hello EGON, there is a 0x3039 error!!!
```
另外稍微吐槽一下,这种方式真的慢。使用模板字符串Template的最佳的时机就是当你的程序需要处理由用户提供的输入内容时。模板字符串是最保险的选择,因为可以降低复杂性。其他一些复杂的字符串格式化技巧的可能会给你的程序带来安全漏洞。
### 总结
- 如果格式化的字符串是由用户输入的,那么基于安全性考虑,推荐使用Template。
- 如果使用的python3.6+版本的解释器,推荐使用f-Strings。
- 如果要兼容python2.x版本的python解释器,推荐使用str.format。
- 如果不是测试的代码,不推荐使用%。
+49
View File
@@ -0,0 +1,49 @@
---
title: C++ 学习笔记
description: 记录C++编程语言的学习心得和基础知识
createTime: 2025/09/22 09:00:00
permalink: /programming/cplusplus/
---
# C++ 学习笔记
这里是我在学习C++编程语言过程中记录的学习心得、基础知识和实战经验。通过整理这些笔记,希望能够帮助自己和他人更好地掌握C++这门强大的编程语言。
## 学习路径
C++是一门复杂而强大的编程语言,学习路径建议如下:
1. **基础语法** - 掌握C++的基本语法和编程概念
2. **面向对象编程** - 学习C++的类、继承、多态等OOP特性
3. **STL标准库** - 熟悉常用的容器和算法
4. **高级特性** - 模板、异常处理、智能指针等
5. **实战项目** - 通过实际项目巩固所学知识
## 笔记分类
### 基础语法
- 数据类型
- 运算符和表达式
- 控制流语句
- 函数
### 面向对象编程
- 类和对象
- 继承与多态
- 封装与抽象
- 构造函数与析构函数
### STL标准库
- 容器(vector, list, map等)
- 迭代器
- 算法
- 函数对象
## 学习资源推荐
- [C++ Primer Plus:中文版(第六版)](https://101su.ru/book/5442395/430bc1/c-primer-plus%E4%B8%AD%E6%96%87%E7%89%88%E7%AC%AC%E5%85%AD%E7%89%88.html) - 很好的C++入门教材
开始你的C++学习之旅吧!坚持学习,你会发现C++的魅力所在!
+10
View File
@@ -0,0 +1,10 @@
---
title: C++ 简介与环境配置
createTime: 2025/09/22 09:06:00
permalink: /programming/cplusplus/basis/
---
## C++的简介
欢迎来到C++的奇妙世界~(๑>◡<๑) 如果你之前接触过C语言的话,那真是太棒啦!C++就像是C语言穿上了漂亮的新衣裳,不仅保留了原来的优点,还添加了面向对象和泛型编程的魔法哦~不过呢,可能需要稍微调整一下之前的编程习惯呢。就算你是第一次接触C++也完全不用担心,我会用最简单可爱的方式,带着你一步一步探索这个神奇的编程世界哒!
## 环境配置
-202
View File
@@ -1,202 +0,0 @@
---
title: 系统分析师
createTime: 2026/03/01 12:40:00
permalink: /subject/certification/
---
# 系统分析师
软考高级资格考证笔记~
> 官网:https://www.ruankao.org.cn/
## 考试科目
| 科目 | 题型 | 分值 | 时长 |
| :--- | :--- | :--- | :--- |
| 综合知识 | 选择题 (75道) | 75分 | 150分钟 |
| 案例分析 | 问答题 (5道选3道) | 75分 | 90分钟 |
| 论文写作 | 论文题 (4选12500字) | 75分 | 120分钟 |
**及格标准**:各科目均需达到 45 分
## 考试要求
1. 具有系统工程的基础知识
2. 掌握开发信息系统的综合技术知识(硬件、软件、网络、数据库)
3. 熟悉企业和政府信息化建设,并具有组织信息化战略规划的知识
4. 熟练掌握信息系统开发过程和方法
5. 熟悉信息系统开发标准
6. 掌握信息安全的相关知识与技术
7. 理解软件质量保证的手段
8. 具有经济与管理科学的相关基础知识,熟悉有关的法律法规
9. 具有大学本科的数学基础
10. 熟练阅读和正确理解相关领域的英文文献
## 综合知识考点分布
| 知识点 | 分数 | 比例 |
| :--- | :--- | :--- |
| 信息化战略规划 | 6-9 | 8-12% |
| 需求工程 | 4-8 | 5.33-10.67% |
| 系统设计 | 2-8 | 2.67-10.67% |
| 信息安全 | 4-9 | 5.33-12% |
| 数据库系统 | 6-8 | 8-10.67% |
| 计算机网络 | 5-8 | 6.67-10.67% |
| 操作系统 | 4-6 | 5.33-8% |
| 软件工程 | 2-5 | 2.6-6.67% |
| 法律法规与标准化 | 4 | 5.33% |
| 专业英语 | 5 | 6.67% |
## 案例分析考查主题
- 系统规划
- 开发方法与开发模型
- 需求工程
- 系统分析
- 系统设计
- 系统运行和维护
- 数据库方向
- 项目管理
- 企业信息化战略与实施
- 嵌入式方向
- Web技术
- 新技术的应用
## 论文写作主题
- 系统规划与战略规划
- 需求工程
- 系统开发方法
- 系统维护和系统测试
- 项目管理
- 面向对象技术
- 应用系统分析与设计
- 数据库工程
- 应用系统集成
- 新技术的应用
## 备考攻略
### 备考周期
建议 **4-6个月**,高级科目难度较大,需尽早准备!
### 第一阶段:基础构建(1-2个月)
- 研究考试大纲,明确考试范围和重点
- 购买官方推荐教材
- 制定详细的学习计划
- 从基础知识点开始,逐步构建知识体系
### 第二阶段:深入学习(1-2个月)
- 细致阅读教材,做好学习笔记
- 加入在线课程或学习小组交流
- 实践应用所学知识
- 定期自我测试
### 第三阶段:强化训练(1-2个月)
- 大量做历年真题
- 查漏补缺,强化记忆
- 提高答题速度
- 论文写作:看范文,写框架
### 第四阶段:冲刺复习(考前1个月)
- 总结各章节重点和易错点
- 全真模拟考试
- 调整心态,保持状态
### 第五阶段:考前准备(考前1周)
- 复习笔记和提纲
- 检查考试资料(身份证、准考证)
- 调整作息,确保精力充沛
## 答题技巧
### 综合知识
- 先看问题,再看选项
- 排除干扰项,选择相对稳妥的说法
- 当两个选项截然相反时,必有一个正确答案
- 可以用选项代入计算的方式走捷径
### 案例分析
- 带着问题去看题干
- 顺势而为答题,根据题干倾向分析优劣
- 分条目答题,方便老师查看得分点
- 根据分值决定条目数量和简略程度
### 论文写作
- 提前准备 2-3 个主题的框架
- 关注论文结构:背景、问题、方案、效果、总结
- 结合实际项目经验
- 字数控制在 2500 字左右
## 2026年考试时间安排
| 时间节点 | 说明 |
| :--- | :--- |
| 报名时间 | 2026年3月中旬至4月中旬(各省差异大) |
| 考试时间 | 2026年5月23日-26日 |
| 准考证打印 | 考前一周左右(5月中旬) |
**注意**:各地报名时间差异极大,部分省份窗口期可能短至一周,请务必关注当地通知!
## 报名流程与注意事项
### 报名官网
- 中国计算机技术职业资格网:https://www.ruankao.org.cn/
- 报名平台:https://bm.ruankao.org.cn/
### 报名流程
1. **注册登录**:使用"国家网络身份认证"APP扫码登录
2. **填报信息**:选择考区、填写个人信息,报考级别选"高级",资格选"系统分析师"
3. **上传照片**:必须使用官方"照片验证工具"处理白底彩色证件照
4. **审核缴费**:等待审核(1-3个工作日),审核通过后完成网上缴费
### 注意事项
- **属地原则**:仅接受在工作地、居住地或学籍所在地报考
- **异地报考**:需提供当地社保缴纳证明(连续6个月)或有效期内居住证
- **实名认证**:需提前下载"国家网络身份认证"APP完成认证
- **警惕骗子**:勿信"代报名"、"包过"、"异地代报"等诈骗信息
## 核心能力考查
系统分析师考试强调综合分析与解决实际问题的能力:
| 能力 | 说明 |
| :--- | :--- |
| 系统思维 | 从全局视角看待信息系统与组织战略的关系 |
| 需求分析建模 | 能使用DFD、用例图、类图、活动图等工具进行系统建模 |
| 方案设计与权衡 | 分析C/S vs B/S、单体 vs 微服务等方案的优劣 |
| 项目管理与风险控制 | 制定项目计划(WBS、甘特图)、估算成本、识别风险 |
| 技术趋势理解 | 对云计算、大数据、AI、物联网等新技术有基本理解 |
| 表达与写作 | 撰写结构清晰、逻辑严谨、结合实际的论文 |
**三大核心模块**:软件工程 + 系统分析设计 + 项目管理,合计占 **45%以上**
## 论文评分标准
| 评分项 | 占比 | 档次 |
| :--- | :--- | :--- |
| 切合题意 | 30% | 非常切合、较好地切合、基本上切合 |
| 应用深度与水平 | 20% | 很强、较强、一般、较差 |
| 实践性 | 20% | 很强、较强、一般、较差 |
| 表达能力 | 15% | 很强、较强、一般、较差 |
| 书面能力 | 15% | 很强、较强、一般、较差 |
## 推荐资料
### 官方教材
- 《系统分析师教程(第2版)》(清华大学出版社,2024年10月出版)
### 备考资料
- 近5年软考系统分析师真题
- 《系统分析师考试全程指导》
- 《5天修炼》
- 在线资源:希赛网、软考真题网、B站相关课程
## 参考资料
- [中国计算机技术职业资格网](https://www.ruankao.org.cn/)
- [软考高级系统分析师备考攻略 - 知乎](https://zhuanlan.zhihu.com/p/14782824101)
- [新手一次过软考高级系统分析师 - CSDN](https://blog.csdn.net/winin2024/article/details/141386702)
- [系统分析师考试备考全面解析 - CSDN](https://blog.csdn.net/summer_fish/article/details/151296190)
- [2026上半年软考系统分析师报考指南 - 希赛网](https://www.educity.cn/rk/5454826.html)
@@ -1,11 +0,0 @@
---
title: 第一章 绪论
createTime: 2026/03/01 14:00:00
permalink: /subject/certification/sys-analyst/
---
# 第一章 绪论
> 还没有开始写呢,先占个位置~ ✨
敬请期待...
@@ -1,11 +0,0 @@
---
title: 第二章 数学与工程基础
createTime: 2026/03/01 14:00:00
permalink: /subject/certification/sys-analyst/math/
---
# 第二章 数学与工程基础
> 还没有开始写呢,先占个位置~ ✨
敬请期待...
@@ -1,11 +0,0 @@
---
title: 第十章 系统规划与分析
createTime: 2026/03/01 14:00:00
permalink: /subject/certification/sys-analyst/planning/
---
# 第十章 系统规划与分析
> 还没有开始写呢,先占个位置~ ✨
敬请期待...
+333 -189
View File
File diff suppressed because it is too large Load Diff
+1 -2
View File
@@ -25,8 +25,7 @@
"vuepress-theme-plume": "1.0.0-rc.164" "vuepress-theme-plume": "1.0.0-rc.164"
}, },
"dependencies": { "dependencies": {
"@vuepress/plugin-comment": "^2.0.0-rc.112", "@waline/client": "^3.6.0",
"@waline/client": "^3.13.0",
"mermaid": "^11.12.1" "mermaid": "^11.12.1"
} }
} }