D 游游的矩阵权值
题目描述
游游定义一个矩阵权值为:每一对相邻元素之和的总和。
例如,对于矩阵:
1 2
3 4
它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。
游游希望你构造一个\(n*n\)的矩阵,矩阵中的元素为1到\(n^2\)且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对\(10^9+7\)取模。
输入描述
一个正整数\(n\)。
\(2\leq n \leq 10^9\)
输出描述
矩阵的最大权值,对\(10^9+7\)取模。
解题思路
显然只要越大的数字越里面总和就越大,因此只需要统计一下所有的数字出现情况就行。
四个角落的数只会加2次,边上的数都会加3次,里面的数都是4次,容斥一下取模便可以得到答案。
代码实现
n=int(input())
cnt=4*(n-1)
ans=(1+n*n)*n*n*2-(1+cnt)*cnt//2-10
print(ans%int(1e9+7))
标签:10,cnt,取模,周赛,矩阵,牛客,游游,权值,Round
From: https://www.cnblogs.com/udiandianis/p/18227571