LibreOJ #6220. sum

LibreOJ#6220.sum题解

二次联通门 : LibreOJ #6220. sum

 

 

 

 

 

/*
    LibreOJ #6220. sum

    对所有数做一个前缀和
    如果某一位模N等于另一位
    则他们中间的一段的和一定为N的倍数

    自己感悟一下

    (MMP 我交了11遍才过!!!!⑨快把我冻成冰块!!)
*/
#include <cstdio>
#include <iostream>

#define Max 1111111

int pos[Max];

typedef long long LL;
inline void read (LL &now)
{
    register char c = getchar ();
    for (now = 0; !isdigit (c); c = getchar ());
    for (; isdigit (c); now = now * 10 + c - '0', c = getchar ());
}

LL a[Max];
int Main ()
{
    int N; int s = 0; scanf ("%d", &N); register int i;
    for (i = 1, pos[0] = 1; i <= N; ++ i)
    {
        read (a[i]); s = (s + a[i]) % N;    
        if (!pos[s]) pos[s] = i + 1;
        else
        {
            for (register int j = pos[s]; j <= i; ++ j)
                printf ("%d %lld\n", j, a[j]);
            return 0;
        }    
    }    
    return 0;
}
int ZlycerQan = Main ();
int main (int argc, char *argv[]) {;}

 

转载于:https://www.cnblogs.com/ZlycerQan/p/7423323.html

### 关于 Python `sum` 函数在导入 NumPy 后的行为差异 当导入 NumPy 时,Python 的内置 `sum` 函数可能会表现出不同的行为,这是因为 NumPy 提供了自己的 `sum` 方法,并且该方法可能被优先调用。以下是具体的原因和解释: 1. **NumPy 的 `sum` 方法** 当导入 NumPy 时,它会为数组对象定义自己的 `sum` 方法。如果对 NumPy 数组使用 `sum` 函数,实际上调用的是 NumPy 数组的 `.sum()` 方法[^1]。这与 Python 内置的 `sum` 函数有所不同,因为 NumPy 的实现针对多维数组进行了优化。 2. **类型转换的影响** 如果将一个列表传递给 `sum` 函数,Python 的内置 `sum` 函数会逐个累加列表中的元素。然而,当 NumPy 被导入后,`sum` 可能会尝试将输入转换为 NumPy 数组再进行计算。这种类型转换可能导致结果的变化,尤其是在处理非标量或复杂数据结构时[^2]。 3. **示例代码对比** 下面是两个场景的对比:一个是仅使用 Python 内置功能,另一个是导入 NumPy 后的情况。 ```python # 场景 1: 不导入 NumPy data = [1, 2, 3, 4] result = sum(data) print(result) # 输出 10 # 场景 2: 导入 NumPy 后 import numpy as np data = [1, 2, 3, 4] result = sum(data) print(result) # 输出仍然是 10,但如果数据更复杂则可能出现差异 ``` 在更复杂的场景中,例如涉及嵌套列表或混合数据类型时,NumPy 的 `sum` 方法可能会产生不同的结果,因为它会尝试将所有内容转换为统一的数值类型[^3]。 4. **解决方法** 为了避免混淆,可以显式地使用 NumPy 的 `np.sum` 方法来确保行为一致。例如: ```python import numpy as np data = [1, 2, 3, 4] result_builtin = sum(data) # 使用 Python 内置函数 result_numpy = np.sum(data) # 使用 NumPy 的 sum 方法 print(result_builtin, result_numpy) # 输出均为 10 ``` ### 注意事项 - 如果需要明确区分 Python 内置的 `sum` 和 NumPy 的 `sum`,可以在代码中显式指定 `np.sum`。 - 对于复杂的数据结构(如嵌套列表或混合类型),建议直接使用 NumPy 的方法以避免意外的类型转换问题[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值