如何在竞技编程中将int视为long long int使用

如何在竞技编程中将int视为long long int使用

大多数时候,在竞技编程问题中的输入约束比int的限制要大。因此需要使用long int 或long long int。下面让我们看看两种情况,以便即使naive用户编写正确的逻辑,输入仍未被接受,也能知道哪些位置需要纠正。

Case 1: 未重新定义int为long long int的大整数输入

Case 2: 重新定义 int 为 long long int 的大整数输入

Case 1: 未重新定义int为long long int的大整数输入

例子:

// C++ 程序演示“隐式转换溢出”问题

// 导入输入输出库
#include <iostream>

using namespace std;

//主驱动方法
int main()
{
    // 10的10次幂
    int x = 1e10;

    // 输出数字
    cout << x << endl;

    // return main的返回类型为整数类型
    return 0;
}

输出:

prog.cpp: In function ‘int main()’:
prog.cpp:5:10: warning: overflow in implicit constant conversion [-overflow]
 int x = 1e10; 
         ^

输出解释:

这是因为整数数据类型能够容纳的数字范围是4个字节,也就是说它可以容纳范围为-2,147,483,647到2,147,483,647的整数。在本例中,输出超出变量可以容纳的最大整数,因此报告隐式常量转换的警告。 因此我们需要使用long数据类型,因为它可以容纳8个字节。为了纠正这个问题,我们需要重新定义int。但是,程序仍然会抛出错误,因为主数据类型也会更改。 因此,我们将它们定义为int,以便在比赛中可以提高速度。(即) #define int long long int

Case 2: 重新定义 int 为 long long int 的大整数输入

例子:

// C++ 程序演示 longlongint方法

// 包括所有基本库
# include <bits/stdc++.h>
using namespace std;

// 主驱动程序int32_t类型返回
int32_t main()
{
    //使用sizeof()方法计算整数数据类型的大小
    cout << "size of int = " << sizeof(int) << '\n';

// 定义 int 为 long long int
# define int long long int

    //再次使用标准sizeof()方法计算Integer数据类型的新大小
    cout << "new size of int = " << sizeof(int) << '\n';

    //大的定制输入整数
    int x = 1e18;

    //打印并显示该大整数值
    cout << "value of x = " << x << endl;

    return 0;
} 

输出:

size of int = 4
new size of int = 8
value of x = 1000000000000000000

时间复杂度:O(1)

辅助空间:O(1)

注意: 这通常用于竞技编程问题,因为它将接受所有输入大小。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程