BEGIN; INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-01-hello','C++基础01:环境配置与Hello World(VSCode)','# C++基础01:环境配置与Hello World(VSCode) ## 学习目标 - 安装并打开 VSCode,创建并运行第一个 C++14 程序 - 学会新建文件、保存、运行、查看输出 - 了解 `main()`、`#include `、`cout` ## 推荐视频(观看后写笔记) - 保姆级:VSCode + mingw64 配置 C/C++(BV1tg411N7Fq) - https://www.bilibili.com/video/BV1tg411N7Fq/ - 每天五分钟学C++:01 开发工具(BV1dK4y137bk,系列入口) - https://www.bilibili.com/video/BV1dK4y137bk/ ## 参考图文 - LoongBa 极简配置:GCC/VSCode/HelloWorld - https://github.com/LoongBa/Cpp_Beginner_Guide ## 练习(完成至少 2 题) - B2002 Hello, World! https://www.luogu.com.cn/problem/B2002 - P1000 超级玛丽游戏 https://www.luogu.com.cn/problem/P1000 ## 提交要求 - 在本题页面下方“学习笔记”区域写下: 1) 你安装了什么、遇到什么坑、怎么解决 2) 你的 HelloWorld 代码 3) 你学到的 3 个关键词 ',1,'course:cpp-basic:01',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-01-hello'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-01-hello'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-01-hello'),'vscode'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-01-hello'),'io'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-02-io','C++基础02:输入输出与变量','# C++基础02:输入输出与变量 ## 学习目标 - 会用 `cin` 读入、`cout` 输出 - 理解变量:`int / long long / double / char / string` ## 推荐视频 - 每天五分钟学C++:02 输出、03 变量(系列入口见上) - https://www.bilibili.com/video/BV1dK4y137bk/ ## 练习 - P1001 A+B Problem https://www.luogu.com.cn/problem/P1001 - B2008 计算 (a+b)×c 的值 https://www.luogu.com.cn/problem/B2008 - P5704 字母转换 https://www.luogu.com.cn/problem/P5704 ## 提交要求 - 上传/填写学习笔记:写出 `cin/cout` 模板、常见错误(空格/换行) ',1,'course:cpp-basic:02',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-02-io'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-02-io'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-02-io'),'io'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-02-io'),'types'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-03-branch','C++基础03:分支结构(if / switch)','# C++基础03:分支结构(if / switch) ## 学习目标 - 会写 `if / else if / else` 与基本逻辑运算 - 能处理边界与分类讨论 ## 练习 - B2035 判断数正负 https://www.luogu.com.cn/problem/B2035 - P5711 闰年判断 https://www.luogu.com.cn/problem/P5711 - P1909 买铅笔 https://www.luogu.com.cn/problem/P1909 ## 提交要求 - 笔记里写清:你如何找“边界”(例如 0、最小/最大、等于条件) ',2,'course:cpp-basic:03',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-03-branch'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-03-branch'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-03-branch'),'branch'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-03-branch'),'logic'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-04-loop','C++基础04:循环结构(for / while)','# C++基础04:循环结构(for / while) ## 学习目标 - 会用循环做:计数、累加、打印图形 ## 练习 - B2083 画矩形 https://www.luogu.com.cn/problem/B2083 - P1421 小玉买文具 https://www.luogu.com.cn/problem/P1421 ## 提交要求 - 笔记里写:循环三要素(初始化/条件/更新)+ 你调试的方法 ',2,'course:cpp-basic:04',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-04-loop'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-04-loop'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-04-loop'),'loop'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-04-loop'),'debug'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-05-array','C++基础05:数组入门(一维)','# C++基础05:数组入门(一维) ## 学习目标 - 会定义数组、遍历、统计 ## 练习 - P1427 小鱼的数字游戏 https://www.luogu.com.cn/problem/P1427 - P1428 小鱼比可爱 https://www.luogu.com.cn/problem/P1428 ## 提交要求 - 笔记里写:数组下标从 0/1 的选择;如何避免越界 ',3,'course:cpp-basic:05',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-05-array'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-05-array'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-05-array'),'array'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-06-char-string','C++基础06:字符与字符串(char / string)','# C++基础06:字符与字符串(char / string) ## 学习目标 - 区分 `char`(一个字符)与 `string`(一串字符) - 会做:大小写转换、统计字母、简单加密 ## 重点 - `char c=''A''`,`string s="abc"` - `s.size()` / `s[i]` / 遍历字符串 ## 练习(完成至少 2 题) - P5704 字母转换 https://www.luogu.com.cn/problem/P5704 - P5733 自动修正 https://www.luogu.com.cn/problem/P5733 - P1914 小书童——凯撒密码 https://www.luogu.com.cn/problem/P1914 ## 提交要求 - 笔记写:`string` 下标访问与越界风险(最后一个下标是 size()-1) ',3,'course:cpp-basic:06',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-06-char-string'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-06-char-string'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-06-char-string'),'string'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-06-char-string'),'char'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-07-operator-cast','C++基础07:运算、取整与类型转换(/ %)','# C++基础07:运算、取整与类型转换(/ %) ## 学习目标 - 写对 `+ - * / %` - 理解:整数除法会向下取整;`%` 只能用于整数 - 学会用 `long long` 防止溢出 ## 练习 - B2008 计算 (a+b)×c 的值 https://www.luogu.com.cn/problem/B2008 - P1421 小玉买文具 https://www.luogu.com.cn/problem/P1421 - P5708 三角形面积 https://www.luogu.com.cn/problem/P5708 ## 提交要求 - 笔记写:什么时候要用 `long long`(例如钱、人数、乘法很大) ',3,'course:cpp-basic:07',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-07-operator-cast'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-07-operator-cast'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-07-operator-cast'),'math'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-07-operator-cast'),'cast'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-08-logic','C++基础08:逻辑运算与边界(&& || !)','# C++基础08:逻辑运算与边界(&& || !) ## 学习目标 - 能把题目里的“并且/或者/不是”写成条件 - 学会找边界:等于、最小/最大、0 ## 练习 - P5710 数的性质 https://www.luogu.com.cn/problem/P5710 - P5711 闰年判断 https://www.luogu.com.cn/problem/P5711 - P1909 买铅笔 https://www.luogu.com.cn/problem/P1909 ## 提交要求 - 笔记写:你列出的边界测试用例(至少 3 个) ',3,'course:cpp-basic:08',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-08-logic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-08-logic'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-08-logic'),'logic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-08-logic'),'boundary'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-09-switch','C++基础09:switch 与枚举列情况','# C++基础09:switch 与枚举列情况 ## 学习目标 - 会写 `switch/case/break` - 面对“情况很少”的题,会列举所有情况 ## 练习 - P2433 小学数学N合一 https://www.luogu.com.cn/problem/P2433 ## 提交要求 - 笔记写:为什么每个 case 后要 `break`(避免贯穿执行) ',3,'course:cpp-basic:09',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-09-switch'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-09-switch'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-09-switch'),'switch'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-09-switch'),'enum'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-10-for','C++基础10:for循环(计数与累加)','# C++基础10:for循环(计数与累加) ## 学习目标 - 熟练掌握 `for(初始化; 条件; 更新)` - 会写:求和、求最大最小、统计个数 ## 练习 - P1425 小鱼的游泳时间 https://www.luogu.com.cn/problem/P1425 - P5718 找最小值 https://www.luogu.com.cn/problem/P5718 ## 提交要求 - 笔记写:循环“三要素”分别是什么 ',3,'course:cpp-basic:10',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-10-for'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-10-for'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-10-for'),'loop'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-10-for'),'for'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-11-while','C++基础11:while循环(未知次数)','# C++基础11:while循环(未知次数) ## 学习目标 - 会用 `while` 处理:读到结束、读到 0 停止 - 避免死循环:每次循环必须改变状态 ## 练习 - P1427 小鱼的数字游戏 https://www.luogu.com.cn/problem/P1427 - P1047 校门外的树(选做)https://www.luogu.com.cn/problem/P1047 ## 提交要求 - 笔记写:你是如何避免死循环的(更新变量写在哪里) ',3,'course:cpp-basic:11',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-11-while'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-11-while'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-11-while'),'loop'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-11-while'),'while'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-12-nested','C++基础12:嵌套循环与打印图形','# C++基础12:嵌套循环与打印图形 ## 学习目标 - 外层循环=行,内层循环=列 - 能打印:矩形、三角形、乘法表 ## 练习 - B2083 画矩形 https://www.luogu.com.cn/problem/B2083 - P5717 三角形分类(练分类讨论 + 输出格式)https://www.luogu.com.cn/problem/P5717 ## 提交要求 - 笔记写:你画图时是怎么想“行/列”的 ',3,'course:cpp-basic:12',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-12-nested'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-12-nested'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-12-nested'),'nested-loop'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-12-nested'),'print'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-13-array-ops','C++基础13:数组进阶(统计/查找/反转)','# C++基础13:数组进阶(统计/查找/反转) ## 学习目标 - 用数组做:统计、查找位置、反转、去重(了解) ## 练习 - P1428 小鱼比可爱 https://www.luogu.com.cn/problem/P1428 - P5727 冰雹猜想 https://www.luogu.com.cn/problem/P5727 ## 提交要求 - 笔记写:数组越界的 2 个典型原因 + 你的检查方法 ',4,'course:cpp-basic:13',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-13-array-ops'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-13-array-ops'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-13-array-ops'),'array'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-13-array-ops'),'practice'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-14-function','C++基础14:函数入门(把重复代码变成工具)','# C++基础14:函数入门(参数/返回值/作用域) ## 学习目标 - 会定义并调用函数 - 知道局部变量作用域({} 内有效) ## 练习 - P5735 距离函数 https://www.luogu.com.cn/problem/P5735 - P5739 计算阶乘(也可用递归)https://www.luogu.com.cn/problem/P5739 ## 提交要求 - 笔记写:你把哪段重复代码抽成了函数?为什么这样更清晰? ',4,'course:cpp-basic:14',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-14-function'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-14-function'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-14-function'),'function'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-14-function'),'scope'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-15-recursion','C++基础15:递归入门(选学)','# C++基础15:递归入门(选学) ## 学习目标 - 理解递归:函数调用自己 - 必须有终止条件(否则会无限调用) ## 练习 - P5739 计算阶乘 https://www.luogu.com.cn/problem/P5739 - P1028 数的计算(选做)https://www.luogu.com.cn/problem/P1028 ## 提交要求 - 笔记写:你的递归“终止条件”是什么? ',4,'course:cpp-basic:15',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-15-recursion'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-15-recursion'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-15-recursion'),'recursion'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-16-struct','C++基础16:结构体 struct(选学)','# C++基础16:结构体 struct(选学) ## 学习目标 - 用 `struct` 把多个字段打包成一个“人物卡/记录” - 学会 `struct` 数组 ## 练习 - P5740 最厉害的学生 https://www.luogu.com.cn/problem/P5740 - P5744 培训 https://www.luogu.com.cn/problem/P5744 ## 提交要求 - 笔记写:struct 适合用在什么场景(多个属性属于同一个对象) ',4,'course:cpp-basic:16',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-16-struct'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-16-struct'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-16-struct'),'struct'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-17-sort','C++基础17:排序初步(sort)','# C++基础17:排序初步(sort) ## 学习目标 - 会用 `#include ` 和 `sort` - 排序后做统计/查找会更简单 ## 练习 - P1059 明明的随机数 https://www.luogu.com.cn/problem/P1059 - P1093 奖学金(选做)https://www.luogu.com.cn/problem/P1093 ## 提交要求 - 笔记写:sort 的区间是 `[begin, end)`(end 不包含) ',4,'course:cpp-basic:17',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-17-sort'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-17-sort'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-17-sort'),'sort'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-17-sort'),'algorithm'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-18-binary-search','C++基础18:二分查找初步(lower_bound)','# C++基础18:二分查找初步(lower_bound) ## 学习目标 - 理解“在有序数组里快速找答案” - 会用 `lower_bound` 找第一个 >= x 的位置 ## 练习 - P2249 查找 https://www.luogu.com.cn/problem/P2249 ## 提交要求 - 笔记写:二分查找的前提:数组必须有序 ',4,'course:cpp-basic:18',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-18-binary-search'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-18-binary-search'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-18-binary-search'),'binary-search'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-19-prefix-sum','C++基础19:前缀和(区间求和神器)','# C++基础19:前缀和(区间求和神器) ## 学习目标 - 会构造前缀和 `s[i]=s[i-1]+a[i]` - 会算区间和 `sum(l,r)=s[r]-s[l-1]` ## 练习 - P8218 求区间和(前缀和基础)https://www.luogu.com.cn/problem/P8218 ## 提交要求 - 笔记写:下标偏移是怎么处理的(从 1 开始更方便) ',4,'course:cpp-basic:19',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-19-prefix-sum'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-19-prefix-sum'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-19-prefix-sum'),'prefix-sum'); INSERT INTO problems(slug,title,statement_md,difficulty,source,created_at) VALUES('cpp-basic-20-simulation','C++基础20:模拟题与综合复盘','# C++基础20:模拟题与综合复盘 ## 学习目标 - 学会按题意一步步做(模拟) - 复盘:总结常见错误 + 常用模板 ## 练习(从这里选 3~5 题做小测) - P1957 口算练习题 https://www.luogu.com.cn/problem/P1957 - P1055 ISBN号码 https://www.luogu.com.cn/problem/P1055 - P2433 小学数学N合一(回顾)https://www.luogu.com.cn/problem/P2433 ## 提交要求 - 笔记写: 1) 你最常犯的 3 类错误 2) 你最常用的 5 行代码模板 3) 下周你准备怎么练 ',4,'course:cpp-basic:20',1771241843) ON CONFLICT(slug) DO UPDATE SET title=excluded.title, statement_md=excluded.statement_md, difficulty=excluded.difficulty, source=excluded.source; DELETE FROM problem_tags WHERE problem_id=(SELECT id FROM problems WHERE slug='cpp-basic-20-simulation'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-20-simulation'),'cpp-basic'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-20-simulation'),'simulation'); INSERT OR IGNORE INTO problem_tags(problem_id,tag) VALUES((SELECT id FROM problems WHERE slug='cpp-basic-20-simulation'),'review'); COMMIT;