2018.3.4【 AtCoder - 3867 】解题报告(矩阵知识,数学)

这篇博客主要介绍了AtCoder上的问题C - Takahashi's Information,要求判断一个3x3矩阵的元素是否能表示为ai+bj的形式。博主提供了解题思路,即通过检查三斜线和是否相等来判断,并给出了解题代码。

C - Takahashi's Information


Time limit : 2sec / Memory limit : 256MB

Score: 300 points

Problem Statement

We have a 3×3 grid. A number ci,j is written in the square (i,j), where (i,j) denotes the square at the i-th row from the top and the j-th column from the left.
According to Takahashi, there are six integers a1,a2,a3,b1,b2,b3 whose values are fixed, and the number written in the square (i,j) is equal to ai+bj.
Determine if he is correct.

Constraints

  • ci,j (1i3,1j3) is an integer between 0 and 100 (inclusive).

Input

Input is given from Standard Input in the following format:

c1,1 c1,2 c1,3
c2,1 c2,2 c2,3
c3,1 c3,2 c3,3

Output

If Takahashi's statement is correct, print Yes; otherwise, print No.


Sample Input 1

Copy
1 0 1
2 1 2
1 0 1

Sample Output 1

Copy
Yes

Takahashi is correct, since there are possible sets of integers such as: a1=0,a2=1,a3=0,b1=1,b2=0,b3=1.


Sample Input 2

Copy
2 2 2
2 1 2
2 2 2

Sample Output 2

Copy
No

Takahashi is incorrect in this case.


Sample Input 3

Copy
0 8 8
0 8 8
0 8 8

Sample Output 3

Copy
Yes

Sample Input 4

Copy
1 8 6
2 9 7
0 7 7

Sample Output 4

Copy
No

【题目大意】

给一个3*3的矩阵,要求该矩阵元素可以表示成 ci,j=ai+bj,即9个元素是由a1,a2,a3,b1,b2,b3,交叉相加得到的。

【解题思路】

由于不用找出 a1,a2,a3,b1,b2,b3,判断存在即可。三斜线和相等即可。

【解题代码】

#include <cstring>
#include <cmath>
#include <cstdio>
#include <queue>
#include <set>
#include <map>
#include <algorithm>
using namespace std;
int mmap[3][3];

int main()
{
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<3;j++)
			scanf("%d",&mmap[i][j]);
	}
	int sum1,sum2,sum3,sum4;
	sum1=mmap[0][0]+mmap[1][1]+mmap[2][2];
//	sum2=mmap[2][0]+mmap[1][1]+mmap[0][2];
	sum2=mmap[0][1]+mmap[1][2]+mmap[2][0];
	sum3=mmap[1][0]+mmap[2][1]+mmap[0][2];
	if(sum1==sum2&&sum2==sum3)
		printf("Yes\n");
	else printf("No\n");
}

【收获与反思】



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值