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

有什么做调查的网站好小程序申请流程

有什么做调查的网站好,小程序申请流程,医院网站建设怎么设置,网站如何做百度才会收录倍数问题 原题目链接 题目描述 众所周知,小葱同学擅长计算,尤其擅长判断一个数是否是另一个数的倍数。但当面对多个数时,他就比较苦恼了。 现在小葱给了你 n 个数,希望你从中找出三个数,使得这三个数的 和是 K 的倍…

倍数问题

原题目链接

题目描述

众所周知,小葱同学擅长计算,尤其擅长判断一个数是否是另一个数的倍数。但当面对多个数时,他就比较苦恼了。

现在小葱给了你 n 个数,希望你从中找出三个数,使得这三个数的 和是 K 的倍数,并且这个 和最大

题目保证一定存在解。

输入描述

  • 第一行包含两个正整数 nK
  • 第二行包含 n 个正整数,代表给定的数列。

数据范围:

  • 1 ≤ n ≤ 10⁵
  • 1 ≤ K ≤ 10³
  • 所有给定的整数不超过 10⁸

输出描述

输出一行一个整数,表示满足条件的最大和。

输入示例

4 3
1 2 3 4

输出示例

9

c++代码

#include<bits/stdc++.h>using namespace std;typedef long long ll;int main() {ll n, K, x, a, b, c, ans = 0;cin >> n >> K;vector<vector<ll>> arr(K);for (ll i = 0; i < n; i++) cin >> x, arr[x % K].push_back(x);for (ll i = 0; i < K; i++) sort(arr[i].begin(), arr[i].end());for (ll i = 0; i < K; i++) {if (arr[i].size() <= 0) continue;a = arr[i].back(), arr[i].pop_back();for (ll j = i; j < K; j++) {if (arr[j].size() <= 0) continue;b = arr[j].back(), arr[j].pop_back();ll val = K - i - j;while(val < 0) val += K;while(val <= K - 1) {if (arr[val].size() > 0) c = arr[val].back(), ans = max(ans, a + b + c);val += K;}arr[j].push_back(b);}arr[i].push_back(a);}cout << ans;return 0;
}//by wqs

题目解析

给你 n 个数和一个整数 K,从这 n 个数中选出三个数 a, b, c,要求:

  • (a + b + c) % K == 0
  • a + b + c 最大化

假设(a + b + c) % K = 0,

那么(a % K + b % K + c % K) % K = 0,

假设a % K = d, b % K = e,

根据(d+ e + c % K) % K = 0,并且数据的值都是正数

也就是说d + e + c % K = n * K(n >= 1),

也就是说c % K = n * K - d - e

那么c % K = K - d - e 或者 2 * K - d - e或者3 * K - d - e…

不要认为有很多种情况,我们看看c % K的范围,

显然,0 <= c % K <= K - 1,

也就是0 <= n * K - d - e <= K - 1,

可见在这个范围下不会有多少种情况,因为K的最大值才1000。

算法流程

枚举两个数的余数,然后计算第三个数所需的余数,根据贪心算法并在对应余数组中取最大值

1. 分类存储:

将所有数字按其对 K 取模的结果分成 K 个桶,即: arr[i] 存放所有 x 满足 x % K == i

这样做的目的,是为了快速找出所有具有相同模值的数,为后续组合提供便利。

2. 排序每个桶:

为了后续能快速取出某个模值的最大值,对每个桶排序,这样能轻松获取每个模值中最大的元素

3. 枚举前两个数模值 (i, j)

你遍历所有 i, j ∈ [0, K),对每一组 (i, j)

  • arr[i] 取最大值 a
  • arr[j] 取最大值 b

4. 根据前两个快速得出第三个模值k:

k = n * K - i - j(n >= 1, 0 <= k <= K - 1)

5. 特别处理下标冲突:

你保存了桶中最大的数后还要回填,因为之后还会用到这些桶。每次取出最大值后记得放回去。


文章转载自:

http://ZziPyy1a.fmswb.cn
http://rApnEo6B.fmswb.cn
http://kbGz4fqL.fmswb.cn
http://hjUFBpdu.fmswb.cn
http://fVforN6M.fmswb.cn
http://b0h6IXy5.fmswb.cn
http://a6XHjCWT.fmswb.cn
http://9qNCP85I.fmswb.cn
http://NmRqqapZ.fmswb.cn
http://NFX2xOWc.fmswb.cn
http://gbTydbJj.fmswb.cn
http://EeILMtf8.fmswb.cn
http://KSeL9qtw.fmswb.cn
http://tY4110yx.fmswb.cn
http://vF1VbTOY.fmswb.cn
http://BjravLlU.fmswb.cn
http://DgOkccoZ.fmswb.cn
http://ClmLBUkk.fmswb.cn
http://UCUVSrej.fmswb.cn
http://v1lgdzLs.fmswb.cn
http://PbMiFkGU.fmswb.cn
http://xz8L9tLe.fmswb.cn
http://5r9m2L7L.fmswb.cn
http://HsHv5Kjg.fmswb.cn
http://EOyWV4fm.fmswb.cn
http://7yh2aNFu.fmswb.cn
http://h0WVnSON.fmswb.cn
http://xSgV40H0.fmswb.cn
http://wGKeYjvp.fmswb.cn
http://Q0XL8oYq.fmswb.cn
http://www.dtcms.com/wzjs/729502.html

相关文章:

  • 用phpmysql做网站成都房屋装修设计公司
  • 怎么避免网站开发后门免费网线
  • 网站开发 需求wordpress 4.4
  • 照明灯具类企业网站敦煌做网站的公司电话
  • 免费网站生成器微网站营销是什么
  • 凡科网站建设完成下载下载器wordpress demo 安装
  • 免费企业网站建立wordpress amp插件
  • 怎样才能建设网站国外室内设计网站大全
  • win2008搭建php网站wordpress毕设
  • 铁路建设单位网站嘉盛建设集团网站
  • 深圳企业网站建设企业河南国邦卫可生物科技有限公司网站建设
  • 东莞网站制作实力乐云seo黄骅市海边沙滩在哪里
  • 有关大学生做兼职的网站网页源代码下载音乐
  • 公司网站建设gghhhj关键词排行优化网站
  • 北京专门做网站的公司用什么软件做网站好处
  • 网站后台修改的页面不能显示网站建设公司擅自关闭客户网络
  • 做网站有哪些主题玉泉营网站建设
  • wordpress 热门插件台州网站建设seo
  • 蒙自建设网站电子商务网站建设需要做好哪些准备
  • 网站建设外包公司排名品牌推广渠道有哪些
  • wordpress新建用户组seo网站关键词优化多少钱
  • 商丘企业网站服务厦门建设网站的
  • ipad网站制作长春网站建设机构
  • 旅游网站开发 目的及必要性北京网站建设培训
  • 网站建设需求文档模版网上做论文的网站有哪些
  • 企业网站整合地图标注申请入口免费
  • 目前玩的人最多网游排行榜网站seo模块
  • 网站首页背景图片企业建设厂房需要办哪些证
  • 徐水住房建设局网站附近那里有做网站的
  • 网站如何做外部链接为什么要给大夫做网站