洛谷算法(三)

155 阅读1分钟

全局变量和局部变量

全局变量在C++中是有默认初始值的。具体来说:

  1. 全局变量和静态变量的内置类型(如intdoublechar等)会被初始化为0。
  2. 对于类类型的全局对象,会调用其默认构造函数进行初始化。
  3. 对于数组类型的全局对象,其元素会被初始化为该类型的默认值。例如,如果数组的元素是int类型,那么它们会被初始化为0。

然而,虽然全局变量有默认初始值,但最好的做法是在声明时显式地给它们赋初值。这样可以提高代码的可读性,并避免因依赖默认初始值而导致的潜在错误。

同余运算

  • 如果 a ≡ b (mod c),意味着 a 与 b 对 c 取模后的余数相同。
  • 同余定理
    • 可乘性:(a × b) mod c 等于 ((a mod c) × (b mod c)) mod c

    • 可加性:(a + b) mod c 等于 ((a mod c) + (b mod c)) mod c

    • 同理也存在可减性

    • 模运算的结合律、交换律和分配律,所以在可乘性中可以将括号去掉

今日碰见两个有意思的算法题 1、今天是星期日,那么过 a 的 b 次方天之后是星期几 2、幂a的b次方末三位数(利用模将其数降下来,再利用对%1000,结果是不会变的) 需要掌握一个思想“每次乘完就模,这样就不会爆炸”

整数运算溢出

在极限情况下运算过程中可能出现数据溢出 int 的情况,因此请将本题所有题解中的代码运算视作 long long 运算。