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

电子商务网站设计与网络营销实验莆田网站建设优化

电子商务网站设计与网络营销实验,莆田网站建设优化,凡科企业邮箱登录入口,企业网站开发设计文章目录 零、题目描述一、算法概述二、算法思路三、代码实现四、算法解释五、复杂度分析 零、题目描述 题目链接:K倍区间 一、算法概述 计算子数组和能被k整除的子数组数量的算法。通过前缀和与哈希表的结合,高效地统计满足条件的子数组。  需要注…

文章目录

    • 零、题目描述
    • 一、算法概述
    • 二、算法思路
    • 三、代码实现
    • 四、算法解释
    • 五、复杂度分析

零、题目描述

题目链接:K倍区间
在这里插入图片描述

一、算法概述

  计算子数组和能被k整除的子数组数量的算法。通过前缀和与哈希表的结合,高效地统计满足条件的子数组。
  需要注意的是,题目要求求的是 k 的非负整数倍,而非整数倍,所以哈希表的值光存储次数是不够的,需要维护一个列表,在枚举到第 i 个元素的时候,在哈希表 hashset[ sum[i]%k ] 的所有列表元素中,统计小于等于 sum[i] 的元素个数进行累加,因为只有小于等于 sum[i] 的值才能保证是 非负整数 倍。

二、算法思路

  1. 前缀和数组:计算数组的前缀和数组sum,其中sum[i]表示前i个元素的和。
  2. 哈希表与多重集合:使用哈希表hashset,键为前缀和模k的余数,值为对应的前缀和的多重集合。
  3. 余数处理:对于每个前缀和sum[i],计算其模k的余数s,并处理可能的负数余数情况。
  4. 查询与统计:在哈希表中查找余数为s的前缀和集合,并统计其中小于当前前缀和的元素数量,累加到结果中。
  5. 更新哈希表:将当前前缀和插入到对应的余数集合中。

三、代码实现

#include <iostream>
#include <unordered_map>
#include <set>
using namespace std;
long long sum[100001];int main()
{int n, k;cin >> n >> k;for(int i = 1; i <= n; ++i) {int x;cin >> x;sum[i] = sum[i-1] + x;}long long ans = 0;unordered_map<int, multiset<long long> > hashset;hashset[0].insert(0);for(int i = 1; i <= n; ++i) {int s = sum[i] % k;s = (s + k) % k;int cnt = distance(hashset[s].begin(),hashset[s].upper_bound(sum[i]));ans += cnt;hashset[s].insert(sum[i]);}cout << ans << endl;return 0;
}

四、算法解释

  1. 输入处理:读取数组长度n和除数k,然后读取数组元素并计算前缀和数组。
  2. 初始化:初始化结果变量ans0,并在哈希表中插入初始值(0, 0),处理空数组的情况。
  3. 遍历前缀和数组
    • 计算当前前缀和模k的余数s,并处理负数余数。
    • 在哈希表中查找余数为s的前缀和集合,统计其中小于当前前缀和的元素数量(注意注意!这题的核心在这里,要求的是非负整数倍,所以必须要找集合中 小于 当前 sum[i] 的元素值,利用二分去找hashset[s].upper_bound(sum[i]))。
    • 将当前前缀和插入到对应的余数集合中。
  4. 输出结果:输出满足条件的子数组数量。

五、复杂度分析

  1. 时间复杂度:随机数据是 O ( n l o g n ) O(n log n) O(nlogn) 的,如果可以构造数据,会达到 O ( n 2 ) O(n^2) O(n2),本题数据较弱。
  2. 空间复杂度 O ( n ) O(n) O(n)。主要用于存储前缀和数组和哈希表。
http://www.dtcms.com/wzjs/518618.html

相关文章:

  • 网站建设宝安郑州seo课程
  • 丹阳建站在线刷高质量外链
  • 余姚网站制作seo排名推广
  • 下载官方购物网站公司网站制作要多少钱
  • 苏州市城乡建设局网站福建企业seo推广
  • 淘宝网那样的网站模板做百度推广的公司电话号码
  • 天津住房和城乡建设委员会官方网站香港疫情最新情况
  • 西安网站开发公司排行榜媒体吧软文平台
  • 部门网站建设管理报告代写1000字多少钱
  • 网站备案最多需要多久如何推广自己产品
  • html5网站是用什么软件做的成都关键词优化服务
  • 织梦网站怎样做百度主动推送曲靖seo建站
  • 广州英文网站建设著名营销策划公司
  • 怎样做网站 知乎seo基础优化包括哪些内容
  • 韶关做网站的公司快手刷粉网站推广
  • 沈阳高端网站seo在线优化工具
  • 金融公司网站 html申请一个网站
  • 品牌查询网站关键词搜索工具爱站网
  • 烟台网站建设策划方案seo在线培训
  • 网站设计布局的重要性公司网络推广
  • 江西专业的网站建设公司网络营销主要学什么
  • 淘宝客网站制作视频教程阿里云域名注册查询
  • 广州市建设工程定额管理网站百度论坛首页
  • 手机网站趋势百度竞价点击一次多少钱
  • 家政公司网站建设专业模板建站
  • 网站建设公司哪里找淘宝关键词排名优化技巧
  • 怎么给领导做网站分析搜索引擎优化的目标
  • 做婚恋交友网站模板温州seo优化
  • 个人博客html代码seo站内优化培训
  • 一个网站同时做竞价和seoebay欧洲站网址