专栏文章
题解:P13420 [COCI 2012/2013 #6] SUME
P13420题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mioqdr32
- 此快照首次捕获于
- 2025/12/02 23:26 3 个月前
- 此快照最后确认于
- 2025/12/02 23:26 3 个月前
前言
记 为输入的矩阵, 表示数组中第 行,第 列的值, 表示题目中最终需要输出的数, 表示这些数中的第 个。
注意:在这篇题解中下标从 开始到 。
思路
可以发现在整个数组中有两个行、列可以作为突破口。
它们是第 行(即对于所有的 ,其中 )和第 列(即对于左右的 ,其中 )。
根据题意,可以得到如下信息(其中 )。
如果我们把 与 相减就可以得到一个惊人的事实(其中 )。
和 是已知的,由上面的式子能够求出 (可以证明,这里无论 取多少, 的值总是固定的)。根据题意,。我们都知道,对于两个实数 能够知道 和 ,就能分别求出 和 ,公式是 。这里我们求出了 和 。所以可以求出 。
求出 之后,只需要将所有的 减去 即可求出所有的 (其中 )。
代码
代码如下。
CPP#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
long long a[n][n],a1[n],a2[n];
if(n==2)
{
cout<<"1 1";
return 0;
}
for(long long i=0;i<n;i++)
{
for(long long j=0;j<n;j++)
{
cin>>a[i][j];
}
}
for(long long i=0;i<n;i++)
{
a1[i]=a[0][i];
}
a1[0]=(a[0][n-1]-(a[1][n-1]-a[0][1]))/2;
for(long long i=1;i<n;i++)
{
a1[i]=a1[i]-a1[0];
}
for(long long i=0;i<n;i++)
{
cout<<a1[i]<<" ";
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...