网站建设的业务规划wordpress免费强大主题

张小明 2026/1/11 9:09:38
网站建设的业务规划,wordpress免费强大主题,公司网站建设报价,如何实现网站的快速排名浅浅氵一篇特地写篇笔记假设手头有 n 个数字#xff0c;需要从中选出 k 个不同的数字相加。问题是#xff1a;有多少种选法#xff0c;能让这 k 个数字的和是质数#xff1f;举个简单的例子#xff1a; 有数字#xff1a;3, 7, 12, 19 要从中选 3 个数字相加 那么所有可能…浅浅氵一篇特地写篇笔记假设手头有 n 个数字需要从中选出 k 个不同的数字相加。问题是有多少种选法能让这 k 个数字的和是质数举个简单的例子有数字3, 7, 12, 19要从中选 3 个数字相加那么所有可能的组合是371222不是质数371929是质数3121934不是质数7121938不是质数所以答案是只有 1 种选法能得到质数和。核心思路分析这个问题看似简单但涉及到几个关键点1. 组合问题 vs 排列问题这是最开始容易混淆的地方组合{3,7,12} 和 {7,3,12} 是同一个组合顺序不重要排列{3,7,12} 和 {7,3,12} 是不同的排列顺序很重要这个问题显然是组合问题所以需要避免重复计数。2. 质数判断质数是只能被1和自身整除的大于1的自然数。比如2, 3, 5, 7, 11……判断一个数是不是质数最直接的方法就是检查它能不能被2到n-1之间的数整除。但是这样太慢了有个小技巧只需要检查到 √n 就可以了。为什么呢因为如果一个数 n 有大于√n的因子那它必然有小于√n的对应因子。代码实现过程我先把完整的代码展示一下然后详细解释#includeiostream using namespace std; int n, k, a[100010], b[100010], cnt 0; bool judge(int y)//判断质数 { if (y 2) return 0; for (int i 2; i * i y; i) { if (y % i 0)return 0; } return 1; } void dfs(int x) { if (x k 1) { int sum0; for (int i 1; i k; i) { sum b[a[i]]; } if (judge(sum)) cnt; return; } for (int i a[x - 1] 1; i n; i) { a[x] i; dfs(x 1); } } int main() { cin n k; for (int i 1; i n;i) { cin b[i]; } dfs(1); cout cnt; return 0; }代码逐行解析第一部分头文件和变量声明#includeiostream using namespace std; int n, k, a[100010], b[100010], cnt 0;#includeiostream引入输入输出流库相当于拿到控制台的遥控器using namespace std;打开标准命名空间这样写cout时就不用写成std::cout了变量声明n总共有多少个数字k要选几个数字a[100010]记录选择了哪些数字的位置索引b[100010]存储实际的数字cnt计数器记录符合条件的方案数初始化为0第二部分质数判断函数bool judge(int y)//判断质数 { if (y 2) return 0; // 小于2肯定不是质数 for (int i 2; i * i y; i) // 只检查到sqrt(y) { if (y % i 0)return 0; // 如果能整除不是质数 } return 1; // 通过了所有检查是质数 }这个函数很关键检查范围是i * i y而不是i y这就是刚才说的优化技巧。第三部分深度优先搜索DFSvoid dfs(int x) { if (x k 1) // 已经选了k个数字 { int sum0; for (int i 1; i k; i) // 计算选出的k个数字的和 { sum b[a[i]]; // a[i]记录的是位置b[a[i]]才是实际数字 } if (judge(sum)) cnt; // 如果是质数计数器加1 return; } for (int i a[x - 1] 1; i n; i) // 关键避免重复 { a[x] i; // 记录选择第i个数字 dfs(x 1); // 继续选择下一个数字 } }这是算法的核心用深度优先搜索来生成所有组合。解释一下关键点x参数表示当前正在选第几个数字当x k 1时说明已经选了k个数字可以计算和并判断了循环中的i a[x - 1] 1确保了每次选择的位置都比上一次大这样就避免了重复组合比如选择了位置2的数字后下一次就从位置3开始选不会回头选位置1这样就不会产生{1,2,3}和{2,1,3}这样的重复。第四部分主函数int main() { cin n k; // 读取n和k for (int i 1; i n;i) // 读取n个数字 { cin b[i]; // 存储到b数组中 } dfs(1); // 从选第1个数字开始 cout cnt; // 输出结果 return 0; }我踩过的坑坑1数组索引的选择一开始还挺纠结数组索引到底该从0开始还是从1开始最后我选择了从1开始因为这样更直观b[1]存储第1个数字b[2]存储第2个数字以此类推……但要注意循环条件也要相应调整比如for (int i 1; i n; i)而不是for (int i 0; i n; i)。坑2全局变量的初始化在代码中数组a[100010]是全局变量。这里有个小知识点全局变量会自动初始化为0所以当我第一次调用dfs(1)时for (int i a[x - 1] 1; i n; i) // 第一次i a[0] 1 0 1 1这样就正确地从第1个位置开始选择了。如果a是局部变量就需要手动初始化为0了。坑3和的计算时机我最初犯过一个错误在每次递归时都计算部分和。但其实等到选满k个数字后再一次性计算更简单。算法复杂度分析这个算法的时间复杂度主要取决于组合数C(n,k) 种选择方案每种方案需要O(√sum)的时间判断质数对于n≤20的情况完全在可接受范围内。总结DFS是解决组合问题的利器通过维护起始位置可以避免重复质数判断有优化技巧只需检查到√n全局变量会自动初始化这个细节很重要代码调试要耐心有时候小错误会导致大问题
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

免费建站平台官网品牌网站建设 杭州

GPT-SoVITS深度解析:少样本语音克隆的技术原理 在数字内容爆炸式增长的今天,个性化声音正成为人机交互中的“最后一公里”。无论是短视频博主希望用自己声音批量生成解说,还是教育平台想为每位老师定制专属语音助手,传统语音合成…

张小明 2026/1/2 6:27:54 网站建设

网页制作和网站开发实验报告网站开发与设计实训报告

你是否正陷入这样的困境? 选题反复被否、大纲逻辑混乱、文献看不完、正文写不出……文档打开一周,光标仍在闪烁;导师问进度,你只能搪塞“在写了”;同学陆续提交初稿,而你连研究问题都还没厘清。别再让拖延和…

张小明 2026/1/10 2:25:18 网站建设

网站制作的流程有哪些亿景网站建设

第一章:Open-AutoGLM云端部署概述Open-AutoGLM 是一个基于 AutoGLM 架构的开源自动化语言模型推理系统,专为在公有云和私有云环境中高效部署而设计。其核心优势在于支持动态负载均衡、自动扩缩容以及多模态输入处理,适用于大规模自然语言处理…

张小明 2026/1/9 18:23:30 网站建设

流媒体视频网站开发建立网站的注意事项

CAAP2008X故障录波分析软件:电力系统故障诊断的终极指南 【免费下载链接】故障录波分析软件caap2008X 本仓库提供了一个功能强大的故障录波分析软件——caap2008X。该软件专为读取和分析COMTRADE格式的故障录波数据而设计,具有操作简便、功能全面的特点。…

张小明 2026/1/5 14:23:46 网站建设

徐州祥云做网站做游戏能赚钱的网站

简介 本文详解大模型后训练技术,包括微调(FFT/LoRA)、对齐(RLHF/DPO)和推理优化(CoT/MCTS)等方法,探讨后训练扩展律和测试时计算优化,对比SFT与RL优缺点,为提升大模型性能提供全面指导。 本文探讨了后训练的重要性、方法以及最新…

张小明 2026/1/2 6:27:43 网站建设

关键词优化网站在深圳注册公司需要什么条件

桢田(Genata)是一家专业研发生产5G安防监控设备、PoE交换机、网管型交换机、网络高清摄像机、5G网络无线覆盖、光电缆传输、监控配件等产品的全产业链安防企业。官网的自我介绍能得知此公司以安防产品为主,不过国内的智能摄像机市场从来不缺品牌。 不同于常见的通用…

张小明 2026/1/3 2:30:20 网站建设