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

蓝桥杯算法精讲:贪心算法的简单应用与题解

目录前言一、贪心算法1.1 简单贪心1.1.1 货舱选址1.1.2 最大子段和1.1.3 纪念品分组1.1.4 排座椅1.1.5 矩阵消除游戏结语 云泽Q个人主页 专栏传送入口: 《C语言》《数据结构》《C》《Linux》《蓝桥杯系列》⛺️遇见安然遇见你不负代码不负卿~前言大家好啊我是云泽Q欢迎阅读我的文章一名热爱计算机技术的在校大学生喜欢在课余时间做一些计算机技术的总结性文章希望我的文章能为你解答困惑~一、贪心算法贪心算法是两极分化很严重的算法。简单的问题会让你觉得理所应当难一点的问题会让你怀疑人生。1什么是贪心算法?贪心算法或者说是贪心策略企图用局部最优找出全局最优。把解决问题的过程分成若干步解决每一步时都选择”当前看起来最优的”解法希望”得到全局的最优解。2.贪心算法的特点对于大多数题目贪心策略的提出并不是很难难的是证明它是正确的。因为贪心算法相较于暴力枚举每一步并不是把所有情况都考虑进去而是只考虑当前看起来最优的情况。但是局部最优并不等于全局最优所以我们必须要能严谨的证明我们的贪心策略是正确的。一般证明策略有反证法数学归纳法交换论证法等等。当问题的场景不同时贪心的策略也会不同。因此贪心策略的提出是没有固定的套路和模板的。我后面讲的题目虽然分类但是大家会发现具体的策略还是相差很大。因此不要妄想做几道贪心题目就能遇到一个会一个。有可能做完50道贪心题目之后第51道还是没有任何思路。3. 如何学习贪心?先有一个认知做了几十道贪心的题目遇到一个新的又没有思路这时很正常的现象把心态放平。前期学习的时候重点放在各种各样的策略上把各种策略当成经验来吸收在平常学习的时候尽可能的证明一下这个贪心策略是否正确这样有利于培养严谨的思维。但是在比赛中能想出来一个策略就已经不错了如果再花费大量的时间去证明有点得不偿失。这个时候如果根据贪心策略想出来的若干个边界情况都能过的话就可以尝试去写代码了。1.1 简单贪心1.1.1 货舱选址货舱选址这里提供两种写法直接法排序后取中位数计算所有点到中位数的绝对距离之和。#includeiostream#includealgorithmusingnamespacestd;typedeflonglongLL;constintN1e510;intn;LL a[N];intmain(){cinn;for(inti1;in;i)cina[i];sort(a1,a1n);LL ret0;// 利用中间值来计算// for(int i 1; i n; i)// {// ret abs(a[i] - a[(n 1) / 2]);// }// 用结论计算for(inti1;in/2;i){reta[n-i1]-a[i];}coutretendl;return0;}配对法排序后首尾配对第i个和第n-i1个累加每对的差值结果与直接法完全一致每对差值等于它们到中位数的距离之和。#includeiostream#includealgorithmusingnamespacestd;constintN1e510;typedeflonglongLL;LL a[N];LL n;intmain(){cinn;for(inti1;in;i)cina[i];sort(a1,an1);//利用结论配对法LL ret0;for(inti1;i(n/2);i){retabs(a[n1-i]-a[i]);}coutretendl;return0;}题目中数据范围为什么定义为long long分两种极端情况① 直接法算所有点到中位数的距离和最坏情况所有商店都分布在数轴两端比如一半在 0一半在 40000中位数在中间。那每个点到中位数的距离最大约等于 40000。总距离和 ≈ 105×400004×109这个数远大于int 的最大值 2.1×109int 根本存不下会直接溢出。② 配对法首尾配对算差值和排序后把第 i 个和第 n-i1 个配对每对差值是 大坐标 - 小坐标。最坏情况最小坐标是 0最大是 40000每对差值都是40000。配对数 ≈ N/25×104总距离和 ≈ 5×104×400002×109这个数虽然比 2.1×109小一点但非常接近上限如果 N 是奇数比如 1051配对数会更多总和就会超过 int 上限依然有溢出风险。在蓝桥杯比赛中很多数据范围溢出的情况都是隐性的新手建议直接全部的定义为long long更为稳妥。1.1.2 最大子段和最大子段和解法有没有似曾相识的感觉这是我们第二次遇见它了但还不是最后一次~贪心算法从前往后累加我们会遇到下面两种情况目前的累加和≥0那么当前累加和还会对后续的累加和做出贡献那我们就继续向后累加然后更新结果目前的累加和0对后续的累加和做不了一点贡献直接大胆舍弃计算过的这一段把累加和重置为0然后继续向后累加。这样我们在扫描整个数组一遍之后就能更新出最大子段和。聪明的你此时就会有「些」大大的疑惑了whywhywhy为什么可以得到「最优解」怎么感觉这个策略是「错」的啊感觉「好多情况」都没考虑进去为什么就得到一个正确的结果为什么可以「大胆舍去」这一段累加和如果你有大大的疑惑这就对了。我刚开始做这道题看到别人的题解是这样写的时候也有如此疑惑。我觉得这就是贪心算法的魅力吧看似很简单很玄学其实有很多值的我们思考的地方别着急我们接下来证明一下这个贪心策略是正确的。其实只需要证明我们在累加的过程中出现负数时为什么可以大胆的舍去这一段区间然后重新开始。证明以下三点就可以「大胆舍弃」了在累加的过程中算出一段区间和sum[ab]0如果不舍弃这一段那么[ab]段之间就会存在一点「以某个位置为起点」就会「更优」分为下面两种情况1.在ab段存在一个点c从这个位置开始「越过b」的累加和比从a开始的累加和更优用「反证法」证明这种情况不存在。如果存在这一点那么sum[c,b] sum[a,b]这样才能保证向后加的时候更优。但这是「不可能」的。如果sum[c,b] sum[a,b]那么sum[a,c一1] 0这与我们的贪心策略矛盾。因为我们贪心策略向后加的时候只要不小于0就会一直加下去。如果[ac一1]段小于0就会在c点之前停止不会累加到b。因此区间内不存在一点在计算子数组和时在越过的情况下能比从a开始更优。2.在ab段存在一个点c从这个位置开始「不越过b」的累加和比从a开始的累加和更优也可以用「反证法」证明这种情况不存在。如果存在这一点那么sum[c,k] sum[a,k]。但这是不可能的。如果sum[c,k] sum[a,k]那么sum[a,c一1] 0这与我们的贪心策略矛盾。因此区间内不存在一点在计算子数组和时在「不越过b」的情况下能比从a开始更优。综上所述我们可以大胆舍弃这一段重新开始。#includeiostreamusingnamespacestd;typedeflonglongLL;constintN2e510;intn;LL a[N];intmain(){cinn;for(inti1;in;i)cina[i];LL sum0,ret-1e6;for(inti1;in;i){suma[i];retmax(ret,sum);if(sum0)sum0;}coutretendl;return0;}要点补充ret用来统计最终结果但是有可能整个数组全是负数最后结果应该是当中最大的那个值所以ret不能初始化为0要初始化为一个特别小的数1.1.3 纪念品分组纪念品分组【解法】先将所有的纪念品排序每次拿出当前的最小值与最大值y如果 x y ≤ w就把这两个放在一起;如果 x y w说明此时最大的和谁都凑不到一起y 单独分组x 继续留下在进行下一次判断。直到所有的物品都按照上述规则分配之后得到的组数就是最优解。#includeiostream#includealgorithmusingnamespacestd;constintN3e410;typedeflonglongLL;LL a[N];LL w,n;intmain(){cinwn;for(inti1;in;i)cina[i];sort(a1,an1);LL l1,rn,ret0;//两个指针相遇时当前的物品也需要分组while(lr){//如果if else中需要执行两个语句两个语句之间一定要用逗号隔开if(a[l]a[r]w)l,r--;//r单独放elser--;ret;}coutretendl;return0;}1.1.4 排座椅排座椅核心目标是在 M 行 N 列的教室中选择 K 个横向通道行与行之间和 L 个纵向通道列与列之间使得被通道隔开的交头接耳同学对数最多即剩余交头接耳对数最少。贪心策略每个候选通道位置行 i 与 i1 之间、列 j 与 j1 之间的「价值」 在此处开通道能隔开的交头接耳对数。我们只需选择价值最高的 K 个横向通道和价值最高的 L 个纵向通道即可得到最优解。#includeiostream#includealgorithmusingnamespacestd;constintN1010;structnode{intindex;// 通道位置编号行/列intcnt;// 此位置作为通道能隔开的交头接耳对数}row[N],col[N];// row: 横向通道数组col: 纵向通道数组intm,n,k,l,d;// 输入参数行数、列数、横向通道数、纵向通道数、交头接耳对数// 按 cnt 从大到小排序用于筛选价值最高的通道boolcmp1(nodex,nodey){returnx.cnty.cnt;}// 按 index 从小到大排序用于输出时保证顺序递增boolcmp2(nodex,nodey){returnx.indexy.index;}intmain(){cinmnkld;// 初始化给每个通道位置赋予对应的编号for(inti1;im;i)row[i].indexi;for(inti1;in;i)col[i].indexi;// 统计每个通道的价值cntwhile(d--){intx,y,p,q;cinxypq;if(xp)// 左右相邻同一行→ 对应纵向通道col[min(y,q)].cnt;else// 前后相邻同一列→ 对应横向通道row[min(x,p)].cnt;}// 第一步按价值降序排序筛选出价值最高的K/L个通道sort(row1,row1m,cmp1);sort(col1,col1n,cmp1);// 第二步将筛选出的通道按位置升序排序保证输出顺序sort(row1,row1k,cmp2);sort(col1,col1l,cmp2);// 输出结果for(inti1;ik;i)coutrow[i].index ;coutendl;for(inti1;il;i)coutcol[i].index ;coutendl;return0;}尤其要注意这里 sort 需要的是告诉它 “用哪个函数做比较”把函数本身传过去由 sort 内部自己去调用所以只需要写 cmp1函数名即可不用加括号和参数。1.1.5 矩阵消除游戏矩阵消除游戏题目核心思路我们有一个 n×m 的矩阵最多进行 k 次操作每次选择一行或一列将其全部置 0并获得该行 / 列所有元素的和作为分数。目标是最大化总得分。由于 n, m ≤ 15直接暴力枚举所有行 列的选择组合会超时2^(nm) 量级因此代码采用枚举行的选择 贪心选列的优化思路先枚举所有可能的行选择方案用二进制掩码表示确定要消除哪些行。对于剩下未被消除的行计算每一列的和然后贪心选择前k - 选中行数个最大的列和补全 k 次操作。遍历所有行选择方案取总分最大值。#includeiostream#includealgorithm#includecstringusingnamespacestd;constintN20;intn,m,k;inta[N][N];intcol[N];// 统计列和// 统计 x 的二进制表示中 1 的个数intcalc(intx){intret0;while(x){ret;x-x-x;}returnret;}// 按照值从大到小排序boolcmp(inta,intb){returnab;}intmain(){cinnmk;for(inti0;in;i)for(intj0;jm;j)cina[i][j];intret0;// 暴力枚举出行的所有选法for(intst0;st(1n);st){intcntcalc(st);if(cntk)continue;// 不合法的状态memset(col,0,sizeofcol);intsum0;// 记录当前选法中的和for(inti0;in;i){for(intj0;jm;j){if((sti)1)suma[i][j];elsecol[j]a[i][j];}}// 处理列sort(col,colm,cmp);// 选 k - cnt 列for(intj0;jk-cnt;j)sumcol[j];retmax(ret,sum);}coutretendl;return0;}1. 常量与变量定义constintN20;// 数组最大维度题目n/m≤1520足够intn,m,k;// n行、m列、最多k次操作inta[N][N];// 存储矩阵的原始数值intcol[N];// 核心辅助数组记录「未被选中的行」中每一列的元素和变量作用a[i][j]第 i 行第 j 列的原始值i/j 从 0 开始代码用 0 索引col[j]所有没被选中消除的行中第 j 列的元素总和后续用来选列得分。2. calc 函数统计二进制中 1 的个数核心工具函数// 统计 x 的二进制表示中 1 的个数intcalc(intx){intret0;// 计数1的个数while(x)// x0时循环{ret;// 每找到一个1计数1x-x-x;// 核心操作消去x最右侧的1}returnret;}核心原理x -x 是计算机中快速找「最右侧 1」的位运算技巧补码特性。例x6二进制 110→ x-x2二进制 010→ x - 2 后变为 4二进制 100再循环x4 → x-x4 → x -4 后变为 0循环结束ret26 的二进制有 2 个 1。函数作用输入一个二进制数行选择掩码返回「选中的行数」因为掩码中 1 的位置对应选中的行。3. cmp 函数排序比较器// 按照值从大到小排序boolcmp(inta,intb){returnab;}作用给 sort 函数用让数组降序排列默认 sort 是升序。例col [10,5,20] → 调用 sort(col, col3, cmp) 后变为 [20,10,5]。主函数核心逻辑分 8 步拆解intmain(){// 步骤1输入矩阵维度、操作次数、矩阵元素cinnmk;for(inti0;in;i)for(intj0;jm;j)cina[i][j];// 步骤2初始化全局最大得分intret0;// 步骤3枚举所有行的选择方案二进制掩码// 1n 等价于 2^nst的取值范围0 ~ 2^n -1for(intst0;st(1n);st){// 步骤4计算当前方案选中的行数跳过不合法方案intcntcalc(st);// cnt 选中的行数if(cntk)continue;// 选中行数超过k无法再选列直接跳过// 步骤5重置col数组为0计算行得分未选行的列和memset(col,0,sizeofcol);// 每次枚举新方案col要清零intsum0;// 记录当前方案的总得分for(inti0;in;i)// 遍历每一行{for(intj0;jm;j)// 遍历每一列{// 判断第i行是否被选中st的第i位是否为1if((sti)1){// 情况1第i行被选中 → 累加该行第j列的值到sum行得分suma[i][j];}else{// 情况2第i行未被选中 → 累加该值到col[j]后续列得分用col[j]a[i][j];}}}// 步骤6贪心选列补全k次操作sort(col,colm,cmp);// 列和降序排列// 选 k - cnt 个最大的列和剩余操作次数for(intj0;jk-cnt;j){sumcol[j];}// 步骤7更新全局最大得分retmax(ret,sum);}// 步骤8输出最终结果coutretendl;return0;}关键步骤的「具象化例子」假设n2行m2列k2矩阵为a[0][0]1,a[0][1]2第0行和为3 a[1][0]3,a[1][1]4第1行和为7枚举 st1二进制 01st1 → 二进制 01 → 第 0 行被选中i0 时(10)11第 1 行未被选中i1 时(11)10cntcalc(1)1≤k2合法计算 sum 和 coli0选中行j0 → sum 1j1 → sum 2 → sum3i1未选中行j0 → col [0] 3j1 → col [1] 4 → col[3,4]排序 col降序后 [4,3]剩余操作次数k-cnt1 → 选 col [0]4 → sum347ret 更新为 7初始 ret0。枚举 st2二进制 10st2 → 第 1 行被选中第 0 行未被选中cnt1sum7第 1 行和col[1,2]排序后 col[2,1]选 1 个 → sum729ret 更新为 9。枚举 st3二进制 11st3 → 两行都被选中cnt2sum3710剩余操作次数 0 → 不选列ret 更新为 10最终结果。最后的最后还没有结束该题目还存在一个隐性的bug我也是刚刚不经意间测了出来若全局变量 col[N] 定义在 a[N][N] 之前提交代码就不能通过示例了按照常理来说全局变量的定义顺序不应该影响最终结果才是原因出在// 选 k - cnt 个最大的列和剩余操作次数for (int i 0; i k - cnt; i) sum col[i];i k - cnt会发生越界访问的情况k的数据范围是很大的k n * mk最大可以把整个矩阵所有的数选到就是如果cnt很小为0/1k很大n×m在这一列选的时候就会超过这一列的极限这一列的极限为m个发生越界访问为了避免发生这种风险就可以使用下面的写法// 选 k - cnt 个最大的列和剩余操作次数for(intj0;jmin(k-cnt,m);j)sumcol[j];若k - cnt过于大的时候就强制把范围限制在所有的列m先定义a数组再定义col数组没有出错的原因是后定义的col数组即使越界访问也是访问那些没有定义的格子全局变量后面没有定义的格子值是0所以后面sum累加的时候也不会出错但是若先定义col数组再定义a数组两个数组在内存中存储的时候就是挨着存的此时col数组越界的时候就会访问到a数组a数组中的值就不是0了所以后续累加会出错结语

相关文章:

蓝桥杯算法精讲:贪心算法的简单应用与题解

目录前言一、贪心算法1.1 简单贪心1.1.1 货舱选址1.1.2 最大子段和1.1.3 纪念品分组1.1.4 排座椅1.1.5 矩阵消除游戏结语🎬 云泽Q:个人主页🔥 专栏传送入口: 《C语言》《数据结构》《C》《Linux》《蓝桥杯系列》⛺️遇见安然遇见你&#xff0…...

简单易用:DDColor黑白照片修复,ComfyUI可视化操作,无需专业修图技能

简单易用:DDColor黑白照片修复,ComfyUI可视化操作,无需专业修图技能 你是否曾翻出一张泛黄的黑白老照片,看着祖辈模糊的笑容或童年模糊的街景,希望它们能重焕光彩?过去,这需要专业的修图技能和…...

LiuJuan20260223Zimage构建内网知识库:安全环境下的智能问答应用

LiuJuan20260223Zimage构建内网知识库:安全环境下的智能问答应用 1. 引言:当智能问答遇上数据安全 想象一下,你在一家金融机构或政府部门工作,每天需要从堆积如山的内部政策文件、研究报告或历史档案里查找信息。传统的搜索工具…...

黄仁勋联手OpenAI前高管,1吉瓦超级算力明年开闸

1吉瓦,数百亿美金。 刚刚,前OpenAI高管、硅谷传奇女性创业者Mira Murati和她的初创公司,与四万亿芯片帝国掌舵人黄仁勋达成了一项「吉瓦级」的长期战略合作! 英伟达CEO黄仁勋(左)与Thinking Machines Lab创…...

方法区、永久代、元空间:一文理清 JVM 内存区域核心演进

JVM内存模型是Java进阶的核心知识点,而方法区(及其实现:永久代、元空间)更是面试和生产环境调优的高频考点。很多开发者容易混淆“方法区(规范)”与“永久代/元空间(实现)”的关系&a…...

C语言中的分支语句

食用指南:本篇文章介绍了c语言中的if、switch分支语句,偏基础向,可用于复习或者初学者自学。--欢迎各位交流--C语言的结构可分为:顺序结构、选择结构、循环结构。我们可以使用if、switch语句来实现分支结构(也就是所谓…...

『NAS』金三银四,在NAS部署AI简历神器-JadeAI

点赞 关注 收藏 学会了 💡整理了一个 NAS 专属玩法专栏,感兴趣的工友可以戳这里关注 👉 《NAS邪修》 用一段话简单介绍一下 JadeAI 本次教程以飞牛 NAS 为例部署 JadeAI ,其他品牌 NAS 的操作步骤基本一致,放心跟着…...

STM32CubeMx 配置三相互补PWM + 死区时间计算

在使用STM32作为控制器去开发电机FOC的时候,往往需要配置三相互补PWM的死区时间,如何快速确认死区时间的范围和配置呢? (1)死区的概念: 在STM32中死区时间是由 CKD[1:0] 和 DTG[7:0] 这两个寄存器共同决定,CKD其实就是…...

深入解析密钥协商机制:从RSA到SM2的实战应用

1. 密钥协商:为什么你的聊天记录别人看不懂? 你有没有想过,当你在网上购物、和朋友聊天、或者登录邮箱时,那些在网络上跑来跑去的数据包,为什么不怕被别人“偷看”呢?比如,你输入的银行卡密码&a…...

OpenBMC sdbusplus接口实战:从服务注册到多接口管理

1. 初识sdbusplus:你的BMC服务开发起点 如果你正在为OpenBMC开发一个新的管理功能,比如监控机箱温度、控制风扇转速,或者实现一个自定义的硬件健康检查服务,那么你迟早要和D-Bus打交道。在OpenBMC的世界里,sdbusplus就…...

【交互式分割】从零到一:基于Mask Guidance的迭代训练实战与性能优化

1. 为什么我们需要Mask Guidance?从交互式分割的痛点说起 想象一下,你正在用Photoshop抠图,面对一张毛发边缘复杂的小猫照片,你用魔棒工具点一下,结果要么选多了背景,要么漏掉了毛发尖。你不得不反复调整容…...

深入解析ACK、NACK与REX:网络通信中的重传机制与优化策略

1. 从“收到请回复”说起:网络世界的确认与重传 不知道你有没有玩过那种需要“收到请回复”的群聊。你发出一条重要通知,如果没人吭声,你心里就会打鼓:他们到底看没看到?这时候,你可能会所有人,…...

阿里云ECS实战:Ollama云端部署与跨网络本地调用全解析

1. 为什么要把Ollama放到云端?聊聊我的真实想法 你可能和我一样,最开始接触大模型都是在自己的电脑上跑。装个Ollama,拉个几B的小模型,玩玩对话,感觉挺酷。但很快,问题就来了:我的MacBook Pro风…...

Windows下利用Docker容器化技术实现多EasyConnect实例共存

1. 为什么我们需要在Windows上运行多个EasyConnect? 如果你和我一样,是个经常需要穿梭在不同项目、不同办公环境之间的打工人,那你肯定对EasyConnect这个软件又爱又恨。爱它,是因为它确实是我们连接公司内网、访问内部资源的“通行…...

从被动防御到主动免疫:IPDRR模型如何重塑企业网络安全韧性

1. 从“筑高墙”到“强免疫”:为什么你的企业安全需要一次思维升级 我见过太多企业,在安全建设上投入不菲,买最好的防火墙、最贵的入侵检测系统,安全策略文档堆起来能有一人高。但真出了事,比如一次勒索病毒攻击&#…...

HanLP 2.x 多任务模型实战:从安装到文本分析全流程

1. 为什么你需要HanLP 2.x的多任务模型? 如果你正在处理中文文本,比如想从一堆新闻里自动提取关键信息,或者给你的聊天机器人加上理解用户意图的能力,那你很可能需要一套好用的自然语言处理(NLP)工具。几年…...

LingJing(灵境)与外部虚拟机的网络穿透实战:从NAT困境到桥接畅通

1. 为什么你的反向Shell总是“失联”?从NAT困境说起 如果你和我一样,是个喜欢在本地搭建渗透测试环境的爱好者,那你肯定遇到过这个让人抓狂的场景:在LingJing(灵境)靶场里,靶机明明启动了&#…...

BEYOND REALITY Z-Image作品分享:自然光人像系列——晨光/正午/黄昏三种氛围呈现

BEYOND REALITY Z-Image作品分享:自然光人像系列——晨光/正午/黄昏三种氛围呈现 1. 引言:当光影遇见AI人像 你有没有想过,一张AI生成的人像照片,能有多真实? 不是那种一眼就能看出来的“AI感”,而是光影…...

告别“发光纸片人”:Substance 3D 与 Unity 2D URP 联动的次世代 2D 动态光照与法线手绘工作流

上周某日下午,一位担任核心技术美术的朋友,在微信上给我发了一段他们最新类银河恶魔城游戏的内部测试视频,并附带了一长串抓狂的语音。他们团队耗巨资请了顶级的二次元原画师,为游戏主角绘制了极其精美的立绘和 Spine 切片。可是&…...

人工智能混合编程实践:C++调用封装好的DLL进行PP-OCR字符识别

人工智能混合编程实践:C++调用封装好的DLL进行PP-OCR字符识别 前言 相关介绍 C++简介 ONNX简介 ONNX Runtime 简介 **核心特点** DLL 简介 **核心特点** **创建与使用** **应用场景** **优点与挑战** OCR字符识别简介 1. 核心工作原理 2. 技术演进 3. 主要应用场景 4. 当前面临…...

互联网大数据环境下 MySQL 迁移至国产底座的技术实践与路径观察

互联网大数据环境下 MySQL 迁移至国产底座的技术实践与路径观察 在当前互联网大数据应用持续深化的背景下,企业对关系型数据库的性能稳定性、安全合规性及运维可控性提出了更高要求。随着技术体系日趋成熟,金仓数据库(KingbaseES&#xff09…...

YOLOv8全网首发:CVPR2026 Transformer注意力 | BinaryAttention 1-bit注意力,推理提速100%,超越FlashAttention2

💡💡💡问题点:Transformer 已取得广泛而显著的成功,但其注意力模块的计算复杂性仍然是视觉任务的主要瓶颈。现有方法主要采用 8-bit 或 4-bit 量化来平衡效率与精度 💡💡💡措施:我们通过理论论证指出,注意力的二值化保留了基本的相似性关系,并提出了 BinaryAt…...

论文查重 / AI 率双杀攻略:Paperxie 四大降重方案实测,从 99.8% 到 14.9% 的通关密码

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippthttps://www.paperxie.cn/weight?type1https://www.paperxie.cn/weight?type1 前言:毕业季新噩梦 ——AI 率超标,比查重更让人崩溃的学术红线 当毕业论文终于写完&#xff…...

Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理

Highcharts React v4.2.1 版本正式发布了!这次更新不仅带来了错误修复和新功能,更重要的是对组件文档进行了全面重写。这体现了我们持续的努力——让使用 Highcharts 的 React 开发者能够获得更加自然、顺畅的开发体验。如果你一直在等待尝试新的集成&am…...

OpenClaw 生成测试用例

在安装完 OpenClaw 后,很多同学只会用它聊天。今天十二就带大家通过安装 Skill,让 OpenClaw 真正变成一个能理解业务、自动写用例的测试专家。 1、查找:测试用例生成Skills 全网 Skill 太多,不知道哪个生成的用例最靠谱。这里使用十二之前安装好的 find-skills 查找测试用…...

计算机毕业设计springboot数字化心理健康服务系统的设计与实现 基于SpringBoot的“树洞“心理咨询服务平台的设计与实现 基于SpringBoot的在线心理支持与智慧辅导平台

计算机毕业设计springboot数字化心理健康服务系统的设计与实现a2huw9 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。近年来,心理健康问题呈直线上升趋势&#xff0c…...

DO-254通读--10.0 硬件设计生命周期数据

10.0 硬件设计生命周期数据 本节描述了在硬件设计生命周期中可能产生的硬件设计生命周期数据项,用于提供设计保证和符合审定要求的证据。审定机构作为设计保证证据所需的生命周期数据的范围、数量和详细程度将因多种因素而异。这些因素包括适用的航空系统审定机构要…...

蓝牙学习系列(一):从零认识蓝牙技术体系

目录 一、什么是蓝牙(Bluetooth) 二、蓝牙的发展版本 三、Classic Bluetooth 与 BLE 3.1 Classic Bluetooth(经典蓝牙) 3.2 BLE(Bluetooth Low Energy) 四、蓝牙设备角色 4.1 Classic Bluetooth 4.…...

成都双流整装工厂,哪家才是靠谱企业?

家人们,在成都双流找靠谱的整装工厂可真是一件让人头疼的事儿!市面上的装修公司五花八门,一不小心就容易踩坑。今天我就用自己的亲身经历,给大家好好唠唠哪家整装工厂才是真靠谱,那就是九天全屋整装!我家就…...

用python flask做了一个,批量查询,修改一堆excel文件的工具

每次要找在excel里面找文件时,都一个个打开,找半天。要修改时,一些类似的数据,又要一个个文件去修改,非常没有效率。这个工具作用就是批量查询与修改。B/S架构,读出来的excel常驻内存,注意&…...