关于C++中unsigned类型

2023-11-02

我们知道c++中的long long,也知道c++里long long有符号,unsigned long long和long long的区别就在于
1.unsigned long long,没有符号,表示范围是0到264-1
2.long long 表示范围是-263-1到263-1

来看一道洛谷的题
对角线
你与其说这题考的是组合数学,我觉得考的更深的在数据类型上

因为这个题,,常规做法long long会爆,化简后只有用unsigned long long 才不爆

令人迷惑的WA

#include <iostream>
using namespace std;
int main()
{
    long long n,ans;
    cin>>n;
    ans=n * (n-1) / 2 * (n-2) / 3 * (n-3) / 4;
    cout<<ans<<endl;
    return 0;
}

令人气愤的AC

#include <iostream>
using namespace std;
int main()
{
    unsigned long long n,ans;
    cin>>n;
    ans=n * (n-1) / 2 * (n-2) / 3 * (n-3) / 4;
    cout<<ans<<endl;
    return 0;
}

令人满意的AC

#include <iostream>
using namespace std;
int main()
{
    long long n,ans;
    cin>>n;
    if(n%2)
    ans=n*((n-1)*(n-2)*(n-3)/24);
    else
    ans=n*(n-1)*(n-2)/24*(n-3);
    cout<<ans<<endl;
    return 0;
}

注意点:
如果你的组合数学公式用的是n*(n-1)(n-2)(n-3)/24那么恭喜你,除了高精度你必然爆掉
化简方法可以吧分母拆分,总之要拆的比较稀碎不能在运算过程中爆long long

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

关于C++中unsigned类型 的相关文章

  • 有没有办法为向量采用内存资源?

    我已经开始在我的项目中使用 pmr allocators 并且我已经看到使用它们带来了很多性能提升和优势 我使用的分配器与我在下面的简单示例中展示的非常相似 include
  • 如何使用 saxon 将文档类型参数传递给 xslt?

    对于发送原子数据类型将使用类似 transformer SetParameter new QName customXml new XdmAtomicValue true 如何将 XML Node 作为参数从 C 传递给 XSLT 你能帮我么
  • Rx Framework:在超时时执行操作,而不中断原始可观察序列

    给定一个可观察的源 通过轮询低级设备的 变化 状态生成 observable source metacode IObservable
  • C++ 中的字符串到 LPCWSTR

    我正在尝试从字符串转换为 LPCWSTR 我使用多位 1 例如 LPCWSTR ToLPCWSTR string text LPCWSTR sw LPCWSTR text c str return sw 2 返回中文字符 LPCWSTR T
  • 获取光标相对于控件的位置 - C#

    我想获取鼠标相对于鼠标指针所在控件的位置 这意味着当我将光标置于控件的起点 左上角 时 它应该给出 0 0 我正在使用以下代码 private void panel1 MouseMove object sender MouseEventAr
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • 将 Visual Studio 2012 C++ 单元测试项目链接到 exe 会导致访问冲突

    我从现有的整体 exe 本机 Visual Studio 2012 项目开始 我想添加一个本机单元测试项目 根据http msdn microsoft com en us library hh419385 aspx objectRef ht
  • 如何在Qt无框窗口中实现QSizeGrip?

    如何使用 Qt 无框窗口实现 QSizeGrip 代码会是什么样的 您只需在布局内窗口的一角添加 QSizeGrip 即可使其保持在该角落 QDialog dialog new QDialog 0 Qt FramelessWindowHin
  • 我需要一个树转储选项,该选项在当前的 gcc 版本中不再存在

    旧版本的 GCC 例如 4 0 2 或 4 1 2 有该选项 df see 用于调试程序或 GCC 的选项对于4 1 2 http gcc gnu org onlinedocs gcc 4 1 2 gcc Debugging Options
  • 如何解决素数函数的大O表示法?

    我正在尝试理解 Big O 表示法 很抱歉 如果我问的问题太明显了 但我似乎无法理解这一点 我有以下 C 代码函数 我正在尝试为其计算 Big O 表示法 for i 2 i lt 100 i for j 2 j lt i j j if i
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • tcmalloc/jemalloc 和内存池之间有什么区别(以及选择的理由)?

    tcmalloc jemalloc是改进的内存分配器 还引入了内存池以更好地分配内存 那么它们之间有什么区别以及在我的应用中如何选择它们呢 这取决于您的程序的要求 如果您的程序有更多的动态内存分配 那么您 需要从可用的分配器中选择一个内存分
  • C#中如何将委托转换为对象?

    我正在使用反射类来调用其他 dll 上的一些方法 方法的参数之一是委托类型 我想通过使用反射来调用这个方法 所以我需要将函数参数作为对象数组传递 但我找不到任何关于 如何将委托转换为对象 提前致谢 委托是一个对象 只需像平常一样创建预期的委
  • CS0246 找不到类型或命名空间名称“ErrorViewModel”(您是否缺少 using 指令或程序集引用?)

    我收到 CS0246 错误代码 我正在做一个 MVC net core 项目 我正在将 Razor 合并到我的 C 代码中 我在进行构建时收到此错误 我在最后一行收到错误 有人能帮我解决这个问题吗 global Microsoft AspN
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • Cuda:最小二乘求解,速度较差

    最近 我使用Cuda编写了一个名为 正交匹配追踪 的算法 在我丑陋的 Cuda 代码中 整个迭代需要 60 秒 而 Eigen lib 只需 3 秒 在我的代码中 矩阵 A 是 640 1024 y 是 640 1 在每一步中 我从 A 中
  • 如何在OpenGL中像这样绘制连接的带状线

    我想用以下方式绘制一系列连接线 GL LINE STRIP 我尝试过自己编写代码 但没有得到想要的结果 所以我来到这里 帮助我找出我错在哪里 这里我只给出我的draw 函数 glBegin GL LINE STRIP glVertex2f
  • STL 向量、迭代器和插入 (C++)

    我有一个将向量的迭代器传递到的方法 在这个方法中 我想向向量中添加一些元素 但我不确定当只有迭代器时这是否可行 void GUIComponentText AddAttributes vector
  • C中的pipe()和fork()

    我需要创建两个子进程 一个子进程需要运行命令 ls al 并将其输出重定向到下一个子进程的输入 而下一个子进程又将对其输入数据运行命令 sort r n k 5 最后 父进程需要读取该数据 已排序的数据 并将其显示在终端中 终端中的最终结果
  • 访问 Visual Studio 扩展中的当前代码窗格

    我正在编写一个 Visual Studio 2010 扩展 在代码视图中带有右键单击菜单 我希望能够从菜单项事件处理程序检查当前代码 但无法在对象模型中找到执行此操作的位置 如何在 Visual Studio 扩展中访问当前窗口中的代码 E

随机推荐

  • Docker配置本地镜像与容器的存储位置

    使用find命令找到大于指定大小的文件 find type f size 10G 排除某个目录 find path media xww type f size 10G 修改Docker本地镜像与容器的存储位置的方法 方法一 软链接 默认情况
  • Qt程序crash信息的捕捉与跟踪(qt-mingw)

    在用qt编写程序时经常会遇到崩溃问题 如果抓取不到crash堆栈信息就会对崩溃问题束手无策 只能对其进行复现 推断 目录 一般解决crash问题时有如下步骤 如何执行以上3步骤 下面我详细介绍如何操作 步骤1 步骤2 步骤3 网友评论 一般
  • js取消默认事件和事件绑定

    1 默认事件 浏览器本事具备的一些功能 如鼠标右键菜单 a标签跳转页面 如果要阻止这些默认行为 可以用return false w3c中定义了ev preventDefault 这个不兼容IE11以下
  • Java 内存可见性与volatile

    在多核系统中 处理器一般有一层或者多层的缓存 这些的缓存通过加速数据访问 因为数据距离处理器更近 和降低共享内存在总线上的通讯 因为本地缓存能够满足许多内存操作 来提高CPU性能 如图 处理器的多层缓存模型 JVM需要实现跨平台的支持 它需
  • Acwing-1112. 迷宫

    include
  • [JavaScript][异步]Promise 构造函数是同步执行还是异步执行,那么 then 方法呢

    JavaScript 异步 Promise 构造函数是同步执行还是异步执行 那么 then 方法呢 const promise new Promise resolve reject gt console log 1 resolve cons
  • MATLAB查看变量的类型

    MATLAB查看变量的类型 gt gt a 100 a 100 gt gt class a ans double gt gt single a ans single 100 gt gt class ans ans single class
  • ubuntu 下 Android系统编译开 发 环境搭建

    官方的搭建android 系统源码 开发环境教程 https source android com source building 这个网址如果打不开 需要翻墙操作 Ubuntu JDK安装配置的详细步骤 Ubuntu JDK安装配置1 下
  • Prophet模型中plot_components四种主要成分含义

    Prophet模型中plot components四种主要成分含义 在Prophet模型中 plot components函数可以对时间序列数据的不同成分进行可视化分析 从而为使用者提供一定的参考依据 其中有四个主要成分 含义如下 tren
  • 多智能体强化学习与博弈论-博弈论基础2

    多智能体强化学习与博弈论 博弈论基础2 Repeated Games 重复博弈 之前我们介绍了一些单次博弈的例子 除了单次博弈外 重复博弈也是经常在我们生活中出现的 在重复博弈中智能体有机会在单次的博弈中占到对手的便宜 但是由于考虑到后来还
  • C语言动态内存管理(malloc,calloc,free,realloc)

    动态内存管理 前言 一 malloc 二 free 三 calloc 四 realloc 五 动态内存管理的常见问题 1 对空指针进行解引用操作 2 对动态开辟的空间越界访问 3 对非动态开辟的内存空间free 4 使用free释放动态内存
  • go语言使用thrift协议实现客户端和服务端报not enough arguments in call to oprot.WriteMessageBegin错误解决方案

    正常步骤 安装golang的Thrift包 go get git apache org thrift git lib go thrift 安装 Thrift 的 IDL 编译工具 http www apache org dyn closer
  • Mybatis学习笔记

    1 概述 MyBatis是一个优秀的持久层框架 它对JDBC操作数据库的过程进行封装 使开发者只需要关注 SQL本身 而不需要花费精力去处理例如注册驱动 创建connection 创建statement 手动设置参数 结果集检索等JDBC繁
  • R语言与机器学习中的回归方法学习笔记

    机器学习中的一些方法如决策树 随机森林 SVM 神经网络由于对数据没有分布的假定等普通线性回归模型的一些约束 预测效果也比较不错 交叉验证结果也能被接受 下面以R中lars包包含数据集diabetes为例说明机器学习中的回归方法 一 数据集
  • numpy(一)

    numpy作为一个科学计算的基础库 他能干的python也能干啊 我还要他干啥 先算个题比较一下 ndarray与python原生list的运算效率对比 import random import time import numpy as n
  • 剑指Offer第三十六题:两个链表的第一个公共结点

    题目描述 输入两个链表 找出它们的第一个公共结点 思路 这里两个单向链表如果有公共结点肯定是下面这种情况 最后通过公共结点汇合 1 看到这题我直接想到哈希 直接利用map存储一个链表 第二个链表遍历查找地址即可 2 链表的叠加 如下图 假设
  • 前沿技术创新是人工智能发展的动力之源 不断拓展能力边界

    近日 WAIC2022上海人工智能开发者大会在中国 上海 自由贸易试验区临港新片区举行 记者从会上获悉 上海将加大力度推动算法开源 数据开放 算力开发 与国内外知名开源社区互联互通 打造国际人工智能开发生态网络的关键节点 前沿技术创新是人工
  • shell脚本之 函数——【初学者必看】

    shell脚本之函数 一 shell函数定义 1 1函数注意事项 1 2 函数返回值 1 3函数调用的方法 1 4 函数的传参 1 5 函数的作用范围 1 6函数的参数 1 6 1参数的用法 1 6 2参数的表示方法 1 6 3 经典案例
  • Flutter实战Align使用详解

    Align相关属性 Align Key key this alignment Alignment center this widthFactor this heightFactor Widget child alignment 需要一个Al
  • 关于C++中unsigned类型

    我们知道c 中的long long 也知道c 里long long有符号 unsigned long long和long long的区别就在于 1 unsigned long long 没有符号 表示范围是0到264 1 2 long lo