C++ accumulate 采坑记录

2023-05-16

C++ accumulate 大数下的采坑记录

  • 总结
  • 问题

总结

	accumulate 的返回值的类型是第三个参数的类型,大数的时候需要注意

问题

题目
具体的思路自行查阅,题目给定的数据范围是10^18,因此需要使用 long 数据类型存储,初始代码如下:

#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>

using namespace std;

class Solution {
public:
  unsigned long minMax(vector<unsigned long>& nums) {
    sort(nums.begin(), nums.end());
    unsigned long sum = accumulate(nums.begin(), nums.end(), 0);
    if (nums[0] + nums[1] > nums[2]) {
      return (sum + 2) / 3;
    }
    if (2 * (nums[0] + nums[1]) < nums[2]) {
      return (nums[2] + 1) / 2;
    }

    return (sum + 2) / 3;
  }
};

int main(int argc, char *argv[]) {
  int N;
  cin >> N;
  vector<unsigned long> nums(3);
  for (int i = 0; i < N; ++i) {
    cin >> nums[0];
    cin >> nums[1];
    cin >> nums[2];
    cout << Solution().minMax(nums) << endl;
  }

  return 0;
}

但是结果使用错误。结果是在

unsigned long sum = accumulate(nums.begin(), nums.end(), 0);

的使用上,参照 C++ Reference 上的原型:
在这里插入图片描述
可以看出,上述代码会因为返回值是int类型而被截断(因为没有任何尾标的 0 被推导为 int 类型),解决方法:

    unsigned long sum = accumulate(nums.begin(), nums.end(), 0ul);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ accumulate 采坑记录 的相关文章

  • C++学习笔记 之 数组使用注意事项(持续补充ing)

    我是目录 在不知道数组长度时 xff0c 想要声明数组 数组名相当于指针常量 xff08 即 type const xff09 数据名在作为函数的参数时将失去其数据结构内涵 在不知道数组长度时 xff0c 想要声明数组 xff08 例如想要
  • C++学习笔记 之 常量指针与指针常量

    常量指针 形式 xff1a const int pt 特点 xff1a 防止通过该指针修改指向的值 指针的指向可以改 Int age 61 23 Const int pt 61 amp age 表明 pt 的值不能被修改 xff0c 或者说
  • Pytorch学习笔记 之 主体训练流程

    目录 数据读取部分DatasetDataLoader 模型训练优化器设置损失函数设置设备设置模型训练保存 加载模型 数据读取部分 pytorch官方文档链接 xff1a 这里 Dataset 数据类 xff0c 需要自己实现 xff0c 后
  • C++学习笔记 之 lower_bound & upper_bound

    用于查找有序序列中目标值的上下界 使用时需要包含头文件 include lt algorithm gt 内部实现是二分查找 xff0c 时间复杂度为 O l o g n
  • Git 学习笔记

    目录 教程链接常用命令 教程链接 廖雪峰Git教程 Git官方教程 常用命令 工程准备 git init git clone 新增 删除 移动文件到暂存区 git add git rm git mv 查看工作区 git diff git s
  • 对vector元素取址 时出现的问题

    一般不建议对vector里的元素进行取址 xff0c 除非vector已经填充完毕 xff0c 即size不再变化时才可取址 因为如果vector未填充完毕时 xff0c 此时把某一元素地址赋给一个指针p xff0c 后续如果对vector
  • maskrcnn_benchmark使用过程 错误记录

    在使用maskrcnn的benchmark框架的时候训练突然报错 xff1a Non existent config key MODEL ROI BOX HEAD NUM CLASSES 39 之前还能正常运行的 xff0c 突然就报错 x

随机推荐

  • CMakeLists.txt书写规则记录

    编写自己的CMakeLists txt 1 一个CMakeLists txt的基本内容2 项目包含多个文件或文件夹时添加方式3 添加链接库 1 一个CMakeLists txt的基本内容 span class token comment 编
  • 1-FreeRTOS入门指南

    本专栏是根据官方提供的文档进行FreeRTOS的各个功能函数的说明 xff0c 以及函数的使用 本专栏不涉及动手操作 xff0c 只是对原理进行说明 xff0c FreeRTOS基础知识篇更新完成会对如何在开发板上进行上手实战操作 这里不会
  • 2-FreeRTOS编码标准、风格指南

    1 编码标准 FreeRTOS源文件 对所有端口通用 xff0c 但对端口层不通用 符合MISRA编码标准指南 使用pc lint和链接lint配置文件检查遵从性 由于标准有很多页长 xff0c 并且可以从MISRA处以非常低的费用购买 x
  • 4-FreeRTOS队列、互斥、信号量

    1 队列 队列 xff08 我对队列的理解就是上体育课 xff0c 排队这种 xff09 是任务之间通信的一种方式 队列可以用于任务和任务之间或者中断和任务之间消息的接收与发送 在多数情况下 xff0c 他们消息缓冲是按照FIFO xff0
  • QT教程demo之串口助手代码设计实现

    关注WeChat Official Account 南山府嵌入式获取更多精彩 我创建了一个群关注V号后加入 因为这里不允许添加二维码 代码 xff1a QT Pr 1 QT开发串口助手需要的基本文件 在QT6开发串口助手时 xff0c 通常
  • 自己动手写全套无人驾驶算法系列(四)机器人2D SLAM

    自己动手写全套无人驾驶算法系列 xff08 四 xff09 机器人2D SLAM 目录 一 概述 1 1 系列整体概述 二 传感器层 2 1 轮式里程计 2 2 IMU 2 3 激光雷达 2 4 视觉VO 三 建图层 3 1 静态二值贝叶斯
  • 深入理解如何不费吹灰之力搭建一个无人驾驶车(一)2D-小车底盘部分

    一 搭建综述 无人驾驶最新很流行 xff0c 但是很多人都觉得这东西蛮高大上的 xff0c 因为CSDN还没有一个完整的介绍无人驾驶车如何做的博文 xff0c 都很零散或者简略 其实有了ROS xff0c 这东西一个小学生都可以搭 xff0
  • 深入理解如何不费吹灰之力搭建一个无人驾驶车(五)2.5D-汽车自主部分(从无到有自己写一个主流无人驾驶框架如apollo)(CSDN独创)

    五 从无到有自己动手写个主流无人驾驶汽车框架 xff08 如apollo xff09 xff08 CSDN独创 xff09 注1 xff1a 必须先看完前四章再看这一章 xff0c 如果想看得轻松请看 概率机器人 与 机器人学状态估计 完再
  • ORB_SLAM系列总结

    1 最早的特征点法 xff0c 并把定位与跟踪分为两个线程是PTAM Parallel Tracking and Mapping for Small AR Workspaces 可以说是特征点法SLAM的起源之一 论文 xff1a http
  • vmware下ubuntu18.04 安装ROS Melodic+gazebo9+PX4并roslaunch运行+QGroundConrtol控制

    官方推荐ubuntu18 04的对应ROS和gazebo版本为ROS Melodic 和 gazebo9 官方指导 xff1a ROS安装 xff1a http wiki ros org Installation Ubuntu gazebo
  • PX4自定义pkg包roslaunch

    创建pkg 首先在Ros工程目录src下 xff0c 创建新的功能包ref catkin create pkg span class token operator lt span pkg name span class token oper
  • PyTorch中FLOPs计算问题

    最近看了很多关于FLOPs计算的实现方法 xff0c 也自己尝试了一些方法 xff0c 发现最好用的还是PyTorch中的thop库 xff08 代码如下 xff09 xff1a device 61 torch device 34 cuda
  • Docker Prometheus(普罗米修斯)监控系统+grafana可视化

    目录 一 Prometheus 概述1 概述2 监控系统作用及Prometheus的特点3 Prometheus 基本服务与作用4 概念 二 Prometheus exporter cadvisor 的部署1 docker部署prometh
  • 收藏的博客 -- Qt有关的GitHub/Gitee开源项目

    收藏的博客 Qt有关的GitHub Gitee开源项目 置顶 libaineu2004 2017 08 18 14 50 30 5843 已收藏 68 分类专栏 xff1a 精品资源推荐 文章标签 xff1a qt github g
  • 【海康摄像头】海康摄像头SDK下载与使用

    文章目录 一 海康摄像头SDK官网下载二 海康摄像头SDK在WinForm WPF中使用三 常用接口函数 xff0c 封装调用函数 一 海康摄像头SDK官网下载 1 进入海康ws官网 xff0c 下载官网SDK和相关文档 2 根据自己应用程
  • 嵌入式面试知识点总结 -- STM32篇

    一 MCU对比 问题 xff1a 问题一 xff1a STM32F1和F4的区别 xff1f 解答 xff1a 参看 xff1a STM32开发 STM32初识 内核不同 xff1a F1是Cortex M3内核 xff0c F4是Cort
  • Linux递归访问文件目录

    Linux递归访问文件目录 include lt iostream gt include lt cstring gt include lt cstdlib gt include lt sys types h gt include lt di
  • 非阻塞connect实现代码

    非阻塞connect实现代码 使用非阻塞IO连接服务端 xff0c 可将sleep替换要执行的任务 xff0c 客户主循环利用epoll监听事标准输入和socket上的事件 xff0c 利用管道将标准输入写入socket 有个问题请教大家
  • make:file not recognized: file format not recognized

    学艺不精 xff0c 在Makefile规则中包含了头文件 xff0c 导致make编译时出现标题错误 去掉Makefile中的 h文件即可 特此记录下
  • C++ accumulate 采坑记录

    C 43 43 accumulate 大数下的采坑记录 总结问题 总结 accumulate 的返回值的类型是第三个参数的类型 xff0c 大数的时候需要注意 问题 具体的思路自行查阅 xff0c 题目给定的数据范围是10 18 xff0c