游游定义一个矩阵权值为:每一对相邻元素之和的总和。 例如,对于矩阵: 1 2 3 4 它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。 游游希望你构造一个的矩阵,矩阵中的元素为1到且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对取模。
区块链毕设网qklbishe.com为您提供问题的解答
游游定义一个矩阵权值为:每一对相邻元素之和的总和。
例如,对于矩阵:
1 2
3 4
它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。
游游希望你构造一个的矩阵,矩阵中的元素为1到且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对取模。
首先,很明显不可能进行穷举法,必然超时超空间。
对矩阵进行分析,可知矩阵内的元素在权值算式中作为加数出现的次数如下分布(以n=4为例):
2 | 3 | 3 | 2 |
3 | 4 | 4 | 3 |
3 | 4 | 4 | 3 |
2 | 3 | 3 | 2 |
对于出现次数相同的元素,根据加法的交换律它们任意换位置都不影响最终的权值,因此我们只需要知道每个元素出现的次数即可;又很显然的越大的元素我们希望它出现的越多,因此中间那部分(n-2)*(n-2)大小的元素出现次数为4的区域内放的即为最大的(n-2)^2个数,4个角上放1,2,3,4这4个最小的数,其余数放在4个边上。
计算出现次数相同的数的权值和可以利用等差数列求和公式。
最终所得代码如下:
int main() { long long n; cin >> n; //处理n=2和n=3的情况 if (n == 2) { cout << 20; return 0; } if (n == 3) { cout << 134; return 0; } long long X = 1e9 + 7; long long n2 = (n * n); long long n1 = ((n - 2) * (n - 2)); long long n3 = (n2 - n1); long long sum = 0; //4个角上的元素之和 long long v2 = 4 * (1 + 4) / 2 * 2; //4条边上的元素之和 long long v3 = (((n3 - 4) % X) * ((5 + n3) % X) / 2 * 3) % X; //中间的元素之和 long long v4 = (n1 % X) * ((n3 + 1 + n2) % X) * 2 % X; sum = (v2 % X + v3 % X + v4 % X) % X; cout << sum; }
38:44
以上就是关于问题游游定义一个矩阵权值为:每一对相邻元素之和的总和。
例如,对于矩阵:
1 2
3 4
它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。
游游希望你构造一个的矩阵,矩阵中的元素为1到且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对取模。的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训
从业7年-专注一级市场
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 游游定义一个矩阵权值为:每一对相邻元素之和的总和。
例如,对于矩阵:
1 2
3 4
它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。
游游希望你构造一个的矩阵,矩阵中的元素为1到且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对取模。
微信:btc9767
TELEGRAM :https://t.me/btcok9
具体资料介绍
web3的一级市场千万收益的逻辑
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 游游定义一个矩阵权值为:每一对相邻元素之和的总和。
例如,对于矩阵:
1 2
3 4
它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。
游游希望你构造一个的矩阵,矩阵中的元素为1到且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对取模。
进群点我
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 游游定义一个矩阵权值为:每一对相邻元素之和的总和。
例如,对于矩阵:
1 2
3 4
它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。
游游希望你构造一个的矩阵,矩阵中的元素为1到且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对取模。
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 游游定义一个矩阵权值为:每一对相邻元素之和的总和。 例如,对于矩阵: 1 2 3 4 它的权值是(1+2)+(1+3)+(2+4)+(3+4)=3+4+6+7=20。 游游希望你构造一个的矩阵,矩阵中的元素为1到且每个数恰好出现一次。她希望最终矩阵的权值尽可能大。你能帮帮她吗?由于矩阵可能过大,你不需要输出最终的矩阵,只需要输出这个最大权值即可。答案对取模。