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

长沙制作网站软件安卓系统开发培训

长沙制作网站软件,安卓系统开发培训,wordpress引入html,湖北微网站建设多少钱目录 一、1.刷题统计 - 蓝桥云课 算法代码&#xff1a; 代码思路分析 二、1.倍数问题 - 蓝桥云课 算法代码&#xff1a; 代码思路 关键逻辑详解 一、1.刷题统计 - 蓝桥云课 算法代码&#xff1a; #include <bits/stdc.h> // 包含所有标准库头文件 using namesp…

目录

一、1.刷题统计 - 蓝桥云课

算法代码:

代码思路分析 

二、1.倍数问题 - 蓝桥云课

算法代码: 

代码思路

关键逻辑详解


一、1.刷题统计 - 蓝桥云课

算法代码:

#include <bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;     // 使用标准命名空间,避免每次调用标准库函数时写 std::
typedef long long ll;    // 定义 ll 为 long long 类型的别名,方便使用int main() {// 定义变量 a(工作日每天完成的任务数)、b(周末每天完成的任务数)、n(总任务数)ll a, b, n;// 从标准输入读取 a、b、n 的值cin >> a >> b >> n;// 计算一周(7 天)完成的任务量:5 个工作日每天完成 a 个任务,2 个周末每天完成 b 个任务ll week = a * 5 + b * 2;// 计算完整周的天数:总任务数除以一周的任务量,取整后乘以 7ll days = (n / week) * 7;// 计算剩余的任务量:总任务数对一周的任务量取模ll k = n % week;// 如果有剩余任务需要处理if (k <= a * 5) {// 如果剩余任务可以在 5 个工作日内完成// 计算需要多少个工作日完成剩余任务days += k / a;// 如果剩余任务不能整除 a,则需要额外一天if (k % a) {days += 1;}} else {// 如果剩余任务需要跨到周末完成// 先完成 5 个工作日days += 5;// 计算剩余任务量:减去 5 个工作日完成的任务量k -= a * 5;// 计算需要多少个周末完成剩余任务days += k / b;// 如果剩余任务不能整除 b,则需要额外一天if (k % b) {days += 1;}}// 输出总天数cout << days;// 主函数返回 0,表示程序正常结束return 0;
}

代码思路分析 

二、1.倍数问题 - 蓝桥云课

算法代码: 

#include <bits/stdc++.h>  // 包含所有标准库头文件
using namespace std;     // 使用标准命名空间,避免每次调用标准库函数时写 std::int m[1050][3];  // 定义二维数组 m,用于存储每个余数对应的最大三个数
int u[100010];   // 定义数组 u,用于存储输入的整数int main() {int n, k;  // 定义变量 n(数组大小)和 k(模数)cin >> n >> k;  // 输入 n 和 k// 输入数组 ufor (int i = 0; i < n; i++) {scanf("%d", &u[i]);}// 将数组 u 按从大到小排序sort(u, u + n, greater<int>());// 遍历数组 u,按模数分类for (int i = 0; i < n; i++) {int y = u[i] % k;  // 计算当前数对 k 取模的结果// 将当前数存储到 m[y] 中,最多存储三个数if (m[y][0] == 0) {m[y][0] = u[i];} else if (m[y][1] == 0) {m[y][1] = u[i];} else if (m[y][2] == 0) {m[y][2] = u[i];}}int ans = 0;  // 定义变量 ans,用于存储最终的最大和// 枚举可能的和 x(x 是 k 的倍数,范围为 0 到 2k)for (int x = 0; x <= 2 * k; x += k) {// 枚举余数 afor (int a = 0; a < k; a++) {// 枚举余数 bfor (int b = 0, c; b < k; b++) {// 计算余数 c = x - a - bc = x - a - b;// 检查 c 是否合法(即 c 在 0 到 k-1 之间)if (c >= 0 && c < k) {// 计算当前组合的和,并更新最大值ans = max(ans, m[a][0] + m[b][a == b] + m[c][(a == c) + (b == c)]);}}}}// 输出结果cout << ans;return 0;  // 主函数返回 0,表示程序正常结束
}

代码思路

        这段代码的目的是从一组整数中选出 最多三个数,使得它们的和是 k 的倍数,并且和尽可能大。具体思路如下:

  1. 输入数据

    • 读取整数 n(数组大小)和 k(模数)。

    • 读取数组 u,存储 n 个整数。

  2. 排序数组

    • 将数组 u 按从大到小排序,方便后续优先选择较大的数。

  3. 按模数分类

    • 使用二维数组 m 记录每个余数对应的最大三个数。

    • 遍历数组 u,计算每个数对 k 取模的结果 y=u[i]%k。

    • 将数 u[i] 存储到 m[y]中,最多存储三个数(即每个余数最多记录三个最大的数)。

  4. 枚举可能的和

    • 枚举可能的和 x,其中 x 是 k 的倍数,范围为 0 到2k(因为最多选三个数,三个数的和对 k 取模的范围是 0 到 2k)。

    • 对于每个 x,枚举两个余数 a 和 b,计算第三个余数 c=x−a−b。把题目转化为a%k有k种取值,b%k也有k种取值,而选定a、b之后,可以通过a、b、x计算出c,所以只需要枚举a%k和b%k即可,计算复杂度是O(k**2),能通过100%的测试。

    • 检查 c 是否合法(即 c 在 0 到 k−1 之间)。

    • 如果合法,计算当前组合的和,并更新最大值。

  5. 输出结果

    • 输出满足条件的最大和。


关键逻辑详解

  1. 按模数分类

    • 使用二维数组 m 记录每个余数对应的最大三个数。

    • 例如,m[y][0] 存储余数为 y 的最大数,m[y][1] 存储次大数,m[y][2] 存储第三大数。

  2. 枚举可能的和

    • 由于最多选三个数,三个数的和对 k 取模的范围是 0 到 2k。

    • 对于每个可能的和 x,枚举两个余数 a 和 b,计算第三个余数 c=x−a−b。

    • 检查 c是否合法(即 c在 0 到 k−1 之间)。

  3. 计算当前组合的和

    • 使用 m[a][0] 获取余数为 a 的最大数。

    • 使用 m[b][a==b] 获取余数为 b 的数:

      • 如果 a==b,则选择次大数 m[b][1]。

      • 否则,选择最大数 m[b][0]。

    • 使用 m[c][(a==c)+(b==c)]获取余数为 c 的数:

      • 如果 a==c或 b==c,则需要跳过已选择的数。

  4. 详细解析:m[a][0]

    • 表示余数为 a 的最大数。

    • 例如,如果 a = 1,则 m[1][0] 是余数为 1 的最大数。

  5. m[b][a == b]

    • 表示余数为 b 的数。

    • 如果 a == b,说明余数为 b 的数已经被选过一次(作为 m[a][0]),因此需要选择次大数 m[b][1]

    • 如果 a != b,则选择最大数 m[b][0]

  6. m[c][(a == c) + (b == c)]

    • 表示余数为 c 的数。

    • 如果 a == c 或 b == c,说明余数为 c 的数已经被选过,因此需要跳过已选择的数。

    • (a == c) + (b == c) 的值可能是 0、1 或 2:

      • 如果是 0,选择最大数 m[c][0]

      • 如果是 1,选择次大数 m[c][1]

      • 如果是 2,选择第三大数 m[c][2]

  7. max(ans, ...)

    • 将当前组合的和与 ans 比较,取较大值更新 ans

  8. 更新最大值

    • 使用 max 函数更新当前最大值。


文章转载自:

http://mWw6nS8w.qrndh.cn
http://zXFFINB9.qrndh.cn
http://c51uBl0S.qrndh.cn
http://1i80LTrZ.qrndh.cn
http://Nh7Nv8uO.qrndh.cn
http://6reogBZJ.qrndh.cn
http://gzAfCOu3.qrndh.cn
http://zXTXH5KM.qrndh.cn
http://ike0wbur.qrndh.cn
http://r1aDR0Ul.qrndh.cn
http://7X0qL3uX.qrndh.cn
http://5amrFtor.qrndh.cn
http://QizUKLXx.qrndh.cn
http://SQSzxmNN.qrndh.cn
http://J3PgiK6t.qrndh.cn
http://W1qxNmtn.qrndh.cn
http://tTggiAuI.qrndh.cn
http://1861Ff2g.qrndh.cn
http://uPS9cv4V.qrndh.cn
http://q1KwHMPO.qrndh.cn
http://jyNw25RF.qrndh.cn
http://9CQrvM0h.qrndh.cn
http://8FFChzQv.qrndh.cn
http://T76vh2nX.qrndh.cn
http://DZi6Io1J.qrndh.cn
http://2UJbAvxF.qrndh.cn
http://XmdDJPFo.qrndh.cn
http://lf5CpPFS.qrndh.cn
http://HXS0zAHn.qrndh.cn
http://xZPiiUEI.qrndh.cn
http://www.dtcms.com/wzjs/723029.html

相关文章:

  • 外贸网站怎样做推广新乡中企网站建设
  • 建立网站第一步网站ui设计
  • 网站开发找什么论文微信商城在哪里找
  • 朋友圈广告推广平台seo入门教程网盘
  • 高端 旅游 网站建设网站优化的主要任务
  • 网站从域名c#做的网站怎么上传图片
  • 一个网站的成功怎么做美食团购网站
  • 网站建设的程序南京建设工程网站
  • 字体多的网站山东服务好的seo
  • 乐清企业乐陵seo外包
  • 提供网站建设方案做农产品的网站名称
  • 山东网站seo设计青岛做网站企业排名
  • 设计公司灰白色调网站分销平台有哪些?
  • 专门做网站的公司与外包公司有哪些123上网之家网址
  • 电子商务网站策划 ppt电商平台app大全
  • 网站建设竞价托管比较网站建设
  • 要做网站到哪里做网站域名骗子
  • 温州手机网站建设wmwl沈阳头条新闻
  • 汕头人才引进优化关键词排名提升
  • 建设银行泰州分行网站wordpress seo 链接
  • wordpress刷新错位百度seo搜索
  • 南山做网站的手机app页面设计
  • 电子政务网站建设ppt南宁伯才网络
  • 红酒网站建设商标注册多少钱
  • 建站魔方极速网站建设做酒店网站所用到的算法
  • 智能云建站wordpress延时插件
  • 外贸公司网址dedeseo网站
  • 网站建设需要确定的问题建立名词
  • 微网站建设最新报价保健品网站源代码
  • 张店网站建网站设计报价是多少钱