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

上海做网站优化哪家好东莞公司网站制作公司

上海做网站优化哪家好,东莞公司网站制作公司,wordpress摘要两端对齐,常德 网站建设目录 一、最大矩形面积问题 问题描述 输入格式 输出格式 输入样例 输出样例 数据范围 解题思路#xff1a; 问题理解 数据结构选择 算法步骤 最终代码#xff1a; 运行结果#xff1a; 二、小M的数组变换 问题描述 测试样例 解题思路#xff1a; 问题…目录 一、最大矩形面积问题 问题描述 输入格式 输出格式 输入样例 输出样例 数据范围 解题思路  问题理解 数据结构选择 算法步骤 最终代码  运行结果  二、小M的数组变换  问题描述 测试样例 解题思路 问题理解 关键点 解题思路 算法步骤 最终代码  运行结果  一、最大矩形面积问题 问题描述 对于一个有 N 个元素的数组包含如下的元素 h1, h2, ..., hn对于 k 个相邻的元素我们定义它的最大面积如下 R(k)k∗min(h[i],h[i1],....,h[ik−1])R(k)k∗min(h[i],h[i1],....,h[ik−1]) 求 R(k) 的最大值 输入格式 总共有两行第一行是数组长度 N第二个是空格分割的所有数组的内容 输出格式 输出 R(k) 的最大值 输入样例 5 1 2 3 4 5输出样例 9 数据范围 1 N 10^51 h[i] 10^6 解题思路  问题理解 我们需要在一个数组中找到一个长度为 k 的子数组使得这个子数组的最小值乘以 k 的值最大。换句话说我们需要最大化 R(k) k * min(h[i], h[i 1], ..., h[i k - 1])。 数据结构选择 由于数组的长度 N 最大可以达到 10^5我们需要一个高效的算法来解决这个问题。我们可以考虑使用滑动窗口Sliding Window技术来遍历所有可能的子数组并使用一个数据结构来快速找到窗口内的最小值。 算法步骤 初始化定义一个变量 max_area 来存储当前找到的最大面积。滑动窗口使用两个指针 left 和 right 来表示当前窗口的左右边界。计算最小值在每次移动窗口时计算当前窗口内的最小值。更新最大面积计算当前窗口的最小值乘以窗口长度 k并与 max_area 比较更新 max_area。移动窗口将窗口向右滑动一个位置继续上述步骤直到遍历完整个数组。 最终代码  #include iostream #include vector #include algorithm using namespace std;int solution(int n, std::vectorint A) {int max_area 0;// 遍历所有可能的 kfor (int k 1; k n; k) {// 遍历所有可能的起始位置 ifor (int i 0; i n - k; i) {// 计算当前 k 个元素的最小值int min_height *min_element(A.begin() i, A.begin() i k);// 计算当前的面积int area k * min_height;// 更新最大面积max_area max(max_area, area);}}return max_area; }int main() {// 添加测试用例std::vectorint A_case1 std::vectorint{1, 2, 3, 4, 5};std::cout (solution(5, A_case1) 9) std::endl;return 0; } 运行结果  二、小M的数组变换  问题描述 小M拿到一个数组她可以进行多次操作每次操作可以选择两个元素 aiai​ 和 ajaj​并选择 aiai​ 的一个因子 xx然后将 aiai​ 变为 ai/xai​/x并将 ajaj​ 变为 aj×xaj​×x。她的目标是通过有限次操作使得数组中的每个元素最多只包含一种素因子。 素因子的定义是若 xx 能被素数 pp 整除那么 pp 是 xx 的一个素因子。例如1212 的素因子有 22 和 33。 你的任务是判断是否有可能通过有限次操作使数组中的每个元素最多只包含一种素因子。如果可以输出 Yes否则输出 No。 测试样例 样例1 输入n 4 ,a [1, 2, 3, 4] 输出Yes 样例2 输入n 2 ,a [10, 12] 输出No 样例3 输入n 3 ,a [6, 9, 15] 输出Yes 解题思路 问题理解 我们需要判断是否可以通过有限次操作使得数组中的每个元素最多只包含一种素因子。每次操作可以选择两个元素 ai​ 和 aj​并选择 ai​ 的一个因子 x然后将 ai​ 变为 ai​/x并将 aj​ 变为 aj​×x。 关键点 素因子分解每个数都可以分解为若干个素因子的乘积。例如12 可以分解为 2 * 2 * 3。操作的本质通过操作我们可以将一个数的素因子转移到另一个数上。目标最终每个数只包含一种素因子。 解题思路 素因子集合首先我们需要找出每个数的所有素因子。素因子图将每个数的素因子看作图中的节点如果两个数共享同一个素因子则在它们之间建立一条边。连通性如果这个图是连通的那么我们可以通过操作将所有素因子集中到某些数上使得每个数只包含一种素因子。判断连通性可以使用并查集Union-Find来判断图的连通性。 算法步骤 素因子分解对每个数进行素因子分解记录每个数的素因子集合。构建并查集将每个素因子作为一个节点如果两个数共享同一个素因子则将它们对应的素因子节点进行合并。判断连通性最终判断并查集中是否只有一个连通分量。 最终代码  #include bits/stdc.h using namespace std; string solution(int n,vectorint a) {setint st;for (auto ai : a){int sai ceil(sqrt(ai));for(int j2;jai jsai;j){while(ai%j 0){ai / j;st.insert(j);}}if(ai ! 1) st.insert(ai);}return st.size()a.size() ? Yes : No; }int main() {vectorint a1 {1, 2, 3, 4};vectorint a2 {10, 12};vectorint a3 {6, 9, 15};cout (solution(4, a1) Yes) endl;cout (solution(2, a2) No) endl;cout (solution(3, a3) Yes) endl;return 0; } 运行结果
http://www.w-s-a.com/news/992604/

相关文章:

  • 极速网站建设哪家好连云港百度推广网站建设
  • 医院网站建设的目标wordpress中英文网站模板
  • 门户型网站开发难度网站导航栏有哪些
  • 推荐做任务网站软件定制开发哪家好
  • 邯郸兄弟建站第三方仓储配送公司
  • 商丘家具网站建设wordpress 添加代码
  • 基础建设的网站有哪些内容成都科技网站建设咨询电话
  • 券多多是谁做的网站招聘网站开发模板
  • 网站主机一般选哪种的企业数字展厅
  • 网站建设该如何学衡水建设局网站首页
  • 高校网站建设工作总结番禺网站开发哪家好
  • 苏州 网站的公司wordpress主页代码
  • 怎么用html做图片展示网站外贸网站建设推广费用
  • 可以做本地生活服务的有哪些网站中油七建公司官网
  • 如何建设谷歌网站网站建设优点
  • 做网站的目标是什么产品宣传片制作公司
  • 柳州建设公司网站辽宁建设工程信息网评标专家入库
  • 合肥建设学校官方网站excel导入wordpress
  • 禹城网站设计做网站需要考虑哪些
  • 深圳做营销网站建设wordpress添加文章封面
  • 阿里云的网站建设方案织梦和wordpress哪个安全
  • 聊城网站建设公司电话wordpress怎么重新配置文件
  • 创业如何进行网站建设泰州公司注册
  • 免费网站建设培训学校手机百度高级搜索入口在哪里
  • 建站经验安徽六安发现一例新冠阳性检测者
  • 滨州内做网站系统的公司汕头网络营销公司
  • 苏州制作网站的公司哪家好wordpress google搜索
  • c语言做项目网站wordpress博客被书为什么还
  • 企业建站用什么系统网站建设补充协议模板
  • 常州网站关键字优化淘客网站怎么做排名