XTU OJ 1274 Matrix

文章讲述了如何对一个特定排列的矩阵第一列的累加和进行高效计算,避免了超时的二维数组模拟或遍历。通过推导公式,并利用除法的取模运算技巧,实现了大数情况下快速计算。当N为偶数或奇数时,有不同的计算公式,并给出了6的逆元在取模运算中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

矩阵

题目描述

我们把1∼N2按下面矩阵的规律进行排列:

145161736⋯236151835987141934101112132033252423222132262728293031

请求第一列的累加和。

输入

每行一个整数N(1≤N≤109),如果N=0表示输入结束,这个样例不需要处理。

输出

每行输出一个样例的结果,因为这个值可能很大,请将其对1,000,000,007取模。

样例输入

1
2
3
1000000000
0

样例输出

1
5
10
499999881

思路

N范围:1≤N≤109,所以直接二维数组模拟或者遍历第1行到第N行累加答案肯定都是会超时的,所以直接推公式。

假设X为偶数,定义函数f(x)=0^2+2^2+4^2...+x^2,那么f(x)=\frac{x(x+1)(x+2)}{6}

这里直接上结果了,反正主要就是找规律:
当N为偶数时:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值