每年大一刚接触编程西工大 NOJNorthwestern Polytechnical University Online Judge这套 100 题基本都是必经之路。不管你之前有没有接触过 C/C把这 100 题扎扎实实刷明白收获的绝不只是几个 AC 记录而是对语法细节、调试习惯和算法基础的真正理解。2024 年的题单我在辅导学弟学妹时又完整过了一遍这篇就把我这几年带过的大坑、解题套路和实操心得一次性写出来希望能帮你少走几周弯路。先说清楚这篇文章适合谁在西工大刷 NOJ、且用的是 C 或 C 的同学对 VSCode 配置 C/C 开发环境一头雾水的新手以及那些明明代码逻辑看着没问题、但提交就是给你报错的老实人。文章不会把 100 题的完整代码全部贴出来而是按题型拆解核心思路和最容易炸的地方附带我处理过的高频报错实录。注意写题解不是为了让你抄抄完过两周考试照样不会关键是把每一步为什么这么做想明白。1. 环境准备先把开发环境弄到能跑代码1.1 开发环境选型为什么我推荐 VSCode MinGWNOJ 的提交环境是 Linux 下的 GCC 编译器这一点决定了你本地装什么编译器最合适。很多同学一开始用 Visual Studio 写 C/CVS 默认用的是 MSVC 编译器它在语法宽容度和某些行为上跟 GCC 有细微差异导致你本地跑得好好的一提交到 NOJ 就编译失败或者运行结果不对。所以能一开始就用 GCC 系的工具链就尽量避免后面被这种差异折磨。我推荐的做法是 VSCode MinGW-w64理由有三个第一VSCode 轻量、免费、跨平台上课和宿舍换电脑同步配置不难第二MinGW-w64 提供的就是 GCC 编译器跟 NOJ 的评测环境高度一致第三VSCode 的调试功能对新手太友好了单步执行、观察变量值能帮你把程序运行的每一步看穿。安装流程其实不复杂简单说就是先装 VSCode再装 MinGW-w64然后装 C/C 扩展插件。网上教程很多但我要强调一个细节MinGW-w64 装完之后一定把bin目录路径加到系统环境变量 PATH 里。比如我的 MinGW 装到C:\mingw64那就要把C:\mingw64\bin加进去。检查方法很简单在终端里敲gcc --version如果能看到版本号说明环境变量生效了如果提示“gcc 不是内部或外部命令”那百分之百是 PATH 没配好回头检查去吧。1.2 VSCode 里真正能让你少掉头发的三个文件很多教程会让你配置tasks.json、launch.json、c_cpp_properties.json三个文件其中tasks.json管编译launch.json管调试c_cpp_properties.json管 IntelliSense 索引。我见过不少同学卡在这三个文件上其实没那么神秘把它们理解成“告诉 VSCode 怎么调编译器、怎么启动调试器、怎么搜索头文件”的三张便签就行。这里我说一个很普遍的坑用 VSCode 装了 C/C 插件代码还是不断冒红色波浪线提示找不到头文件比如#include stdio.h显示“检测到 #include 错误”。这种情况多半是c_cpp_properties.json里的compilerPath没指到真实的 gcc 路径。你直接在插件设置里搜C_Cpp: Default Compiler Path把它填成 MinGW 的 gcc 绝对路径比如C:\mingw64\bin\gcc.exe问题基本立刻消失。这个就是热搜里说的“创建 C/C 索引文件”的实际用途——让 IntelliSense 知道上哪找标准头文件。至于error: command C:\\...\\cl.exe failed with exit status 2这种报错本质是某些 Python 扩展或者系统默认把 MSVC 当成编译器了跟 VSCode 配置 C/C 八竿子打不着。你要是刷 NOJ 是用不到 MSVC 的关掉那个 Python 包、或者在终端手动指定gcc路径就行。我个人从来不在 Windows 下碰 cl.exe 编译 C 程序既然 NOJ 用 GCC我们本地就用 GCC别整花活。1.3 本地编译运行的标准流程我不建议每次都点 VSCode 里的运行按钮因为有时候编译参数和评测环境不一致容易掩盖问题。更稳妥的做法是记住两行终端命令gcc main.c -o main -Wall -Wextra ./main第一行把main.c编译成可执行文件main-Wall -Wextra是把所有警告都打开第二行运行它。-Wall这个参数我特别想多说一句NOJ 只看代码能不能通过测试数据本地编译时产生的警告虽然不影响提交但很多警告背后就是潜在 bug。比如定义了变量没用、比较时类型不匹配、printf 格式串写错这些靠肉眼可不好找编译器其实都暗示你了。调试的话如果你想单步看逻辑我建议学一下 VSCode 的调试功能把断点打在关键行上然后按 F5。观察左边变量面板看循环变量的变化、数组内部的数据比你自己写 printf 打印高效得多。我刷 NOJ 时很多“以为对其实不对”的题都是靠单步调试看出问题的。2. 题目逻辑拆解先会“读题”再谈“写码”2.1 100 题到底在考什么给你的知识点画个地图把 NOJ 100 题全部过一遍你就会发现它其实是有脉络的不是瞎凑出来的题单。按我的归纳题目大概分这么几个梯队顺序结构就是输出、计算、格式控制考察 printf/scanf 的基本功。分支结构if/else、switch配合条件表达式考察逻辑判断。循环结构for、while、do-while包括多重循环、穷举、递推。数组一维数组、二维数组、字符数组考察存储结构和下标操作。函数自定义函数、递归、传值与传址考察代码组织能力。字符串处理字符数组、字符串函数、ASCII 操作这是重点中的重点。结构体与排序结构体数组、排序算法开始接近数据结构雏形。指针指针基础、指针与数组、指针与函数不少同学在这块栽跟头。文件操作读文件、写文件NOJ 里一般能少就少但有的题也涉及。你刷到某个题卡住的时候先问问自己这题考的是哪一块如果连考什么都说不清那就回去翻书把对应的知识点补上再来写题。这个“定位知识点”的习惯比你硬抠代码管用得多。拿我辅导时最常见的例子——很多同学一道题卡住原因不是不会写循环而是不知道循环该循环多少次、循环变量从几开始。这种问题其实反映的是没有把问题抽象清楚一上来就写代码了。我自己的习惯是先在草稿纸上把输入样例和输出样例走一遍模拟一下数据在变量里是怎么流动的再手写一个伪代码版本最后才落到 C 语言。别嫌麻烦老实说大概有一半的题草稿走完流程后代码差不多也写出来了。2.2 运算符优先级一个 if 表达式引发的血案热搜里有一个典型的题目我拿它出来当反面教材int a 5, b 3, c 4; bool res a b || c ^ ;我先不管这个表达式最后残缺的那部分单说这类混着位运算、逻辑运算、算术运算的表达式。很多人一看到和、|和||在同一个表达式里出现就懵然后把优先级全搞反。是位与是逻辑与这两者连操作数类型都不同一个是整型按位操作一个是真值逻辑判断混在一起必须特别小心。C/C 的运算符优先级表我不敢说你能全背下来但有几个高频组合必须形成肌肉记忆算术运算符高于关系运算符关系运算符高于逻辑与、逻辑或赋值运算符优先级极低位运算优先级介于关系运算和逻辑运算之间。拿a b || c来说实际计算顺序是(a b) || c因为的优先级高于||。我没有让你死记优先级表的意思真正的干活经验是别去赌优先级直接用括号把意图写清楚。bool res (a b) || (c ! 0);这套写出来任何人读你的代码都不会有歧义你自己过两天回看也不会想“当时这里到底是怎么算的”。NOJ 不考你优先级背得多熟它考的是你写出来的代码逻辑对不对而括号是消除歧义的最便宜方式。有些同学觉得多加括号显得自己水平低恰恰相反把表达式的计算顺序写清晰是工程界的好习惯工作里代码审查的时候特别加分。还有个小细节C 里bool类型和整型混用的时候非零即真、零即假这个语义虽然简单但在判断条件里容易埋雷。比如if (a 5)这种把赋值写在判断里的低级错误别名“悬空等号”编译器虽然会警告但程序逻辑已经错了。我的建议是判断相等永远写if (a 5)别为了“少打一个等号”省这个事这是 C/C 新手最常见的暗坑之一。3. 典型题型拆解手把手带你把代码写稳3.1 数值类题目素数、水仙花数、最大公约数数值类题目是 NOJ 100 题里的主力。它们的共同特点是逻辑清晰、边界容易踩、优化空间大非常适合练基本功。先说素数判断。如果题目只要求判断一个数是不是素数最简单的写法是循环从 2 到sqrt(n)检查有没有因子。为什么只要到根号 n 就行因为如果一个数 n 有大于sqrt(n)的因子那必然对应一个小于sqrt(n)的因子所以检查一半就够了。很多同学没有数学上这个直觉直接循环到 n-1数据小的时候没事数据一大就等着超时吧。更常见的版本是输出某个区间内的所有素数。比如输出 100 到 200 之间的素数。这种题你就从 101 开始步长为 2只检查奇数然后内层循环从 3 到sqrt(i)步长也为 2。优化之后速度能快一倍。虽然 NOJ 的数据量大多不会苛刻到逼你上埃氏筛但我建议你掌握筛法思路——用数组标记合数从 2 开始把每个素数的倍数全部标记。这个“以空间换时间”的思路后面学算法时会反复遇到早学早受益。水仙花数其实就是“三位数中各位数字立方和等于本身”的数。这类题核心是拆位int ge n % 10; // 个位 int shi (n / 10) % 10; // 十位 int bai n / 100; // 百位拆位这个操作看着简单但很容易出现两种错误一种是把%和/用反了十位写成(n % 10) / 10算出来永远是 0另一种是没先判断数是几位数就直接拆导致最高位多拆出 0。我的建议是遇到这类题先在纸上手算一个数比如 153把它拆开再验证 1^3 5^3 3^3 153确认公式对了再写代码。最大公约数这块必须会用辗转相除法也叫欧几里得算法。核心就是一行递归int gcd(int a, int b) { return b 0 ? a : gcd(b, a % b); }这里有个隐藏得很深的坑如果输入可能包含负数需要先取绝对值否则余数的符号会出错如果题目要求处理a b的情况辗转相除法其实天然兼容因为第一次递归就相当于交换了位置。还有最小公倍数用公式a * b / gcd(a, b)算的时候要先除再乘避免中间结果溢出——就是a / gcd(a, b) * b这个顺序这是个特别典型的大数溢出场景。3.2 字符串与字符数组越界和终止符的双重陷阱字符串处理在 NOJ 里出现频率极高也是最容易“本地正常、提交崩溃”的题型。C 语言里没有真正的字符串类型只有字符数组加一个约定俗成的\0结束符。这个设计本身不复杂但带来的坑一个接一个。第一个坑是数组长度没算够。假设你要读一个最长为 20 的字符串然后做各种操作你至少得开char s[21]因为末尾要放\0。很多同学写char s[20]然后读入 20 个字符操作完之后系统一找\0直接找到数组外面的野内存去了轻则结果乱码重则运行时错误。一句话开数组时多留一个字节给\0这习惯能救你很多次。第二个坑是scanf(%s, s)读到空白就停了它读不进空格。如果题目里的输入是一个带空格的字符串你就得改用别的办法。比如想读一整行可以用gets(s)但这个函数在 C11 标准里已经被移除了因为它无法限制读入长度、极其容易缓冲区溢出编译器都不推荐用。更稳的是fgets(s, sizeof(s), stdin)它会多读一个换行符你操作时记得处理掉末尾那个\n。去掉尾换行的常规操作是s[strcspn(s, \n)] \0;这句话的原理是找到字符串里第一个换行符的位置把它换成字符串结束符。strcspn这个函数第一次看可能觉得陌生但多写两次就记住了它是处理 fgets 尾换行最干净的办法。第三个坑是字符和数字的转换。数字字符0的 ASCII 码是 48你要把它转成整数 0就得减掉0。反过来整数加上0就变成对应字符。很多题要求统计一段文字里数字字符出现几次或者把数字字符转成整数参与运算这两步转换是基本功。我见过太多人硬记48这个数其实写c - 0更好语义清楚而且 C 标准保证数字字符的 ASCII 码是连续排列的这样写永远不出错。3.3 排序与查找边界条件和比较逻辑NOJ 的排序题一般不会太为难你但“不会太为难”不等于你可以胡写。冒泡排序、选择排序、插入排序这三个基础算法必须能默写出来。我观察到一个现象很多同学上课听懂了排序思路一写代码就下标越界——内层循环的结束条件差了 1。以冒泡排序为例外层循环跑n-1轮内层循环比较的范围是0到n-1-i如果你写成n-i最后一次比较就越界访问了a[n]。这种错误在本地可能不崩因为越界访问的内存刚好是相邻变量看上去还能继续跑但一到评测机就是运行时错误。另一个高频坑是比较方向搞错。排序稳定性的概念先不说单说交换函数int temp a[i]; a[i] a[j]; a[j] temp;这个三步交换太基础了但我见过有人写成a[i] a[j]开头然后忘了存原来的值结果就是两个元素一起变成同一个数。写交换的时候心里默念一遍先把旧值存到临时变量然后覆盖再写回旧值。如果题目要求按结构体里的某个字段排序比如学生成绩表按总分从高到低那 C 语言里你要么手写排序并比较score字段要么学一下qsort函数。qsort需要你写一个比较函数它的返回规则是第一个参数排在第二个前面返回负数相等返回 0排后面返回正数。用的时候注意参数类型是const void *要先把指针转成结构体指针再取字段。这个写法绕一下但学会之后排序题基本都是一行调用的事。不过 NOJ 有些题目要求看你手写排序的过程所以不要只会调库基础算法必须会默写。查找的话顺序查找没什么好说二分查找才是有讲究的。二分查找不要死记模板关键是想清楚三件事左边界初始几、右边界初始几、循环条件写还是。比如在有序数组里找一个值常见的写法是int left 0, right n - 1; while (left right) { int mid left (right - left) / 2; if (a[mid] target) return mid; else if (a[mid] target) left mid 1; else right mid - 1; }注意mid别写成(left right) / 2因为 left 和 right 都很大时可能溢出。虽然 NOJ 的数据量一般不会触发溢出但面试阶段这才是标准写法养成好习惯不亏。还有一种写法是left mid 1、right mid - 1确保每次循环区间都在缩小如果写left mid当区间长度为 1 时会死循环。这个坑刷题时十个人里能碰上一次。4. 提交评测的高频问题与排查思路4.1 编译错误先把编译器报错看明白再“猜”代码很多同学编译报错之后不看编译器提示直接对着代码“猜”哪里有错这非常低效。编译器的报错信息虽然有时候冗长但里面含金量很高。我总结了一套“三步定位法”第一步看错误信息里出现的文件名和行号第二步看具体报错原因——expected ; before }就是少分号undeclared identifier就是变量没定义或者拼写错了第三步回看代码上下文特别是上一行因为编译器对错误的定位往往是在“刚发现问题的地方”而不是“真正出错的地方”。NOJ 评测系统会把编译错误提示返回给你我第一次刷题时没见过这种反馈以为代码逻辑对了就行后来才发现编译不过系统直接就不测了。所以提交前至少保证本地编译通过加-Wall -Wextra后没有致命警告。尤其注意函数声明的位置、头文件是否缺失、变量名是否一致这三个点。4.2 运行错误段错误、超时和答案错误分别怎么排查NOJ 的错误结果常见的有这么几种Accepted正确Wrong Answer答案错误Runtime Error运行时错误Time Limit Exceeded超时Compile Error编译错误。其中 Runtime Error 里最常见的又是段错误Segmentation Fault说白了就是你访问了不该访问的内存比如数组越界、空指针解引用、字符串没有\0导致strlen越界。排查段错误我的经验是先看哪些地方用了数组下标循环边界是否越界下标是否可能是负数字符串操作函数是否可能访问到终止符后面。另一个高发点是递归没有出口导致栈溢出——递归层数太深也会段错误别一听段错误就只检查数组。超时问题稍微难一点。NOJ 的单题时限一般给得比较宽但如果你的算法复杂度太差比如该用二分查找的题你写了个暴力循环或者该预处理结果的题你每次都在循环里重算照样会超。还有一个隐蔽点输出太多也会拖慢速度比如你为了调试写了很多printf提交前忘了删。我遇到过好几个学弟for循环里放了个printf打印中间值本地跑没啥感觉提交到评测机上循环一多直接超时。这种“调试输出忘删”的错属于典型的“自己坑自己”。答案错误也有讲究。一种情况是输出格式不对——比如多一个空格、少一个换行、大小写不对另一种是逻辑根本不满足题意。排查答案错误的时候我推荐自己构造特殊测试数据包括最小输入、最大输入、全是边界值、重复值、空输入如果允许拿这些数据在本地喂给程序看到底哪一组开始偏离预期。比如判断闰年的题2000 是闰年、1900 不是闰年、2004 是闰年、2001 不是闰年这四个边界一测程序几乎无所遁形。4.3 输出格式的“隐形分”多一个空格都不行NOJ 的判题是严格比对输出的每一个字符多一个空格、少一个换行、最后多了个回车都可能导致 Wrong Answer。这类问题尤其爱出现在“每个输出项之间用空格隔开”的题里。我建议统一用“前分隔”或“后分隔”的思路要么在每个元素前输出空格首个除外要么在每个元素后输出空格末尾除外。举个典型例子输出 1 到 100 之间所有能被 3 整除的数数之间用空格隔开。容易出错的写法是每次打印完都加空格结果末尾多一个空格更稳的写法是int first 1; for (int i 1; i 100; i) { if (i % 3 0) { if (!first) printf( ); printf(%d, i); first 0; } } printf(\n);用first标记来控制是否输出前面的空格这样末尾就绝对不会多出空白。这个方法看着笨但任何“分隔符”问题都能套强烈建议记下来。再比如要求最后无空行有的同学会在循环里多打一个\n这也要小心。总之题目要求怎么输出就怎么输出不要自行“美化”。5. 刷题顺序与时间分配用正确的方法省一半时间5.1 按难度分层刷别从头硬啃到尾NOJ 100 题是按课程进度排的但如果你拿到的是乱序版或者自己找的题单我的建议是不要按题号闷头刷而是按知识点和难度分层。第一层先把“顺序结构”和“分支结构”的题全部清掉这部分基本是送分题用来熟悉 OJ 的提交规则和输入输出格式。第二层集中刷循环和数组这是真正会拉开差距的部分每题都值得认真做。第三层是字符串和函数难度上来之后你会开始怀疑自己但这一层刷透了C 语言的核心功底就算打牢了。第四层是结构体、指针、文件能刷到这里的已经超过大部分人了。分层刷题的好处是你在同一时间只面对一个类型的坑容易总结出规律而不是今天写循环、明天写指针思路一直跳来跳去。我看很多同学刷题效率低不是因为不努力而是因为东一榔头西一棒槌同一个错误在十个不同的题里反复犯每次都是新的“惊喜”这就亏了。正确的做法是每刷完一类题停下来总结这一类的常见错误形成自己的“防坑清单”。5.2 按时长卡点别在暴力循环里干等还有一个经验是做题时要“有效的思考时间”够但不要一条道走到黑。卡一道题卡了快一小时说明你对某个知识点存在盲区这时候该做的是回到教材读对应章节或者找人讨论而不是继续硬碰。我在刷题时给自己定的规则是30 分钟没有思路就停下来去书里找同类型例题或者看别人题解里的提示看懂思路后自己把代码写出来。重点是“看懂思路后自己写”而不是照着抄一遍。抄一遍过两天全忘白做。时间分配上如果一门课要求一学期刷完 100 题平均下来每天一两道是合理的。但不用每天都刷周末集中火力刷个十几道平时每天保持手感两三道这样穿插进行反而比三天打鱼两天晒网效果好。我见过程度好的同学两周刷完整个题单也见过认真刷了三个月才啃完的进度不是关键真正刷懂才是。5.3 善用草稿纸和测试数据动手前先动脑计算机专业有个经典误区以为写代码是靠脑子“想”出来的其实真正高效的方式是先动手。这里的动手不是说先敲键盘而是先在草稿纸上画流程。比如拿到一个“输入若干个学生成绩统计及格率和平均分”的题你在纸上写出输入样例手算一遍期望输出再把程序的变量逐个列出来看它们每一步应该变成什么值。这个过程最多花五分钟但能避免你在代码里绕一大圈。构造测试数据的能力尤其重要。我在带辅导时发现很多同学写代码是“一次性”的写完就觉得自己对了跑一遍题目给的样例就提交结果样例经常是最温柔的边界数据一进来就炸。我的建议是每道题至少要自测三组数据一组是题目样例一组是边界极值比如最小值、最大值一组是空输入或特殊情况比如只有一行输入。自测通过再提交通过率会明显地提升。特别是当你测试时发现输出和预期不一样先别急着改代码而是把输入、输出、预期三样东西都写到纸上对照着看往往马上就能看出是哪里逻辑不对。6. 常见问题速查表与一些大实话下面这个表是我根据多年辅导经验整理的 NOJ 刷题高频问题速查碰见对应症状直接按图索骥省得反复试错。症状可能原因处理方式提交提示 Compile Error头文件缺失、语言选错C 代码交到 C 提交口、语法错误本地用 gcc 或 g 编译看报错修掉再提交结果 Wrong Answer输出格式不对、逻辑边界处理错、数据类型用错构造多组边界数据测试对照题目输出要求逐字符检查Runtime Error数组越界、空指针、字符串无\0、递归过深检查数组大小和下标的取值范围确认字符串终止符位置Time Limit Exceeded算法复杂度太差、调试输出忘删优化循环次数把不必要的 printf 删掉本地跑通提交不过本地编译器/库与评测环境差异或者本地没有严格按测试数据输入确认你用的是 GCC且仔细检查输入输出的每一个细节代码逻辑看不懂变量命名混乱、嵌套太深没缩进强制自己用有意义的变量名写函数拆逻辑这里面有几条我再展开讲讲。比如“C 代码提交到 C 提交口”这个问题NOJ 支持的语言比较灵活但 C 和 C 编译规则有点不同。C 语言里void main()在有些编译器里能过在严格编译选项下会警告甚至报错而 C 标准里直接不支持void main。所以我们写的时候老老实实写int main(void)或者int main()最后return 0;这是所有编译器都认可的标准写法一劳永逸。“变量类型用错”也常见。NOJ 有些题的数据范围给得很大比如要求计算的结果可能在int范围之外。这时你用int存就会溢出变成负数的诡异结果。我的建议是看数据范围如果数字可能超过 20 亿直接用long long打印时格式为%lld涉及浮点数比较时不要用判等而是用绝对误差判断比如fabs(a - b) 1e-6。这个在浮点数判断题里几乎是必考暗坑很多同学在那里反复 WA 却找不到原因。最后说几句大实话。NOJ 这 100 题说难也难说容易也容易。难是因为它对细节的要求严苛到近乎苛刻一道题可能就是输出了个多余的空格就让你白白丢分容易是因为它的知识点范围非常明确就那么几块内容一轮一轮刷下来笨办法也能刷穿。我的个人感受是刷这套题最大的收获不是学会了某个具体算法而是被训练出了“读题先想边界、写码先想会不会越界、提交前先构造极端数据自测”的肌肉记忆。这种习惯往后不管是做课程设计、参加竞赛还是进实验室写工程代码都特别值钱。如果你刷到某一题实在想不通别硬耗找人讨论或者参考题解都是可接受的。但有一个底线看题解之后一定要自己重新把代码默写出来并且跑通所有自测数据。只有这一遍是自己动手的这题才算真正消化了。祝你在 2024 刷题顺利早日全绿。
企业数字化 ERP 产品动态
相关推荐
STM32软解码EV1527:从波形到按键码的完整实现 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:08:14
STM32+纽扣电池低功耗RTC供电设计实战与避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:08:02
XU9261同步升压芯片的瞬态响应与热设计真相 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 1:08:02
STM32串口IAP升级实战:基于HAL库的Ymodem协议完整方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 3:12:53
嵌入式Linux系统开发:从启动链路到驱动交付的闭环实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 3:12:53
360竞价推广开户多少钱?搞懂性能优化省大钱 360竞价推广开户多少钱?搞懂性能优化省大钱 域名服务器搞不懂,竞价推广费白扔? 别急着掏钱开户,先看看你的网站配不配。 360竞价推广开户多少钱 不是固定价, 性能优化 做不好,点击费全打水漂。 一、 开户门槛与成本拆解… · 2026/9/27 3:12:53
PowerShell脚本双击运行全攻略:注册表关联与安全实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 3:12:47
2026最新网页制作实训内容解析,3大避坑指南 2026最新网页制作实训内容解析,3大避坑指南 找建站公司最怕什么?怕被忽悠多花几万块,还买到一堆没用的功能。很多创业者刚起步,预算紧张,拿着“网页制作实训内容”去问价,对方报价动辄五万起步,让你听得云里雾里。其实,2026年最新的行业趋势… · 2026/9/27 3:12:40
舰船检测全链路实战:YOLOv5训练与PyQt界面部署 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 3:12:40
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01