C++大神快进来
题目背景“codeplus比赛的时候在做什么?有没有空?能来解决停机问题吗?”qmqmqm这样问sublinekelzrip。当然,sublinekelzrip并不会停机...
题目背景
“codeplus比赛的时候在做什么?有没有空?能来解决停机问题吗?”qmqmqm这样问sublinekelzrip。
当然,sublinekelzrip并不会停机问题,所以qmqmqm改为提出了另一个题目,现在请你帮助sublinekelzrip解决这个题目。
题目描述
这个问题是这样的:
对于任何一个n阶方阵,若任意从其中选择n个不同行不同列的位置,其上的权值之和均相等,则我们称这个矩阵是巧妙的。注意对于n=1的任何矩阵都是巧妙的。 例如矩阵147258369是巧妙的,因为1+5+9=1+6+8=2+4+9=2+6+7=3+5+7=3+4+8=15,而矩阵1221不巧妙,因为1+1≠2+2。
现在有一个n×m大小的矩阵M以及T个询问,每次询问其一个子方阵是否是巧妙的。
输入格式
从标准输入读入数据。
输入第一行包含三个正整数n,m,T。
之后n行每行m个空格分割的非负整数,表示矩阵M。
之后T行每行3个正整数x,y,k,表示询问第x行第y列为左上角的k阶方阵是否是巧妙的。保证这个矩阵完全位于M之中。
输出格式
输出到标准输出。
输出包含T行每行一个字符Y或者N。Y表示被询问的方阵是巧妙的,N表示不是。
样例1输入
3 3 4
1 1 1
1 1 1
1 1 2
1 1 2
1 1 3
2 2 2
2 1 2
样例1输出
Y
N
N
Y
对了加我我发红包!!!!!!!!!!!!!!!!!!!! 展开
“codeplus比赛的时候在做什么?有没有空?能来解决停机问题吗?”qmqmqm这样问sublinekelzrip。
当然,sublinekelzrip并不会停机问题,所以qmqmqm改为提出了另一个题目,现在请你帮助sublinekelzrip解决这个题目。
题目描述
这个问题是这样的:
对于任何一个n阶方阵,若任意从其中选择n个不同行不同列的位置,其上的权值之和均相等,则我们称这个矩阵是巧妙的。注意对于n=1的任何矩阵都是巧妙的。 例如矩阵147258369是巧妙的,因为1+5+9=1+6+8=2+4+9=2+6+7=3+5+7=3+4+8=15,而矩阵1221不巧妙,因为1+1≠2+2。
现在有一个n×m大小的矩阵M以及T个询问,每次询问其一个子方阵是否是巧妙的。
输入格式
从标准输入读入数据。
输入第一行包含三个正整数n,m,T。
之后n行每行m个空格分割的非负整数,表示矩阵M。
之后T行每行3个正整数x,y,k,表示询问第x行第y列为左上角的k阶方阵是否是巧妙的。保证这个矩阵完全位于M之中。
输出格式
输出到标准输出。
输出包含T行每行一个字符Y或者N。Y表示被询问的方阵是巧妙的,N表示不是。
样例1输入
3 3 4
1 1 1
1 1 1
1 1 2
1 1 2
1 1 3
2 2 2
2 1 2
样例1输出
Y
N
N
Y
对了加我我发红包!!!!!!!!!!!!!!!!!!!! 展开
1个回答
展开全部
只贴思路,没空敲代码233……
先看2*2矩阵:
a b
c d
巧妙,当且仅当a+d=b+c即a-b=c-d。
要注意一个情况,n个不同行不同列的元素之和均相等,这个条件等价于,任意交换两个元素的列(比如[1,3]、[2,5]变成[1,5]、[2,3]),总和保持不变。
结合2*2的条件,可以得出结论:
一个n*n的矩阵巧妙,当且仅当,任意两行l1、l2,两列c1、c2,满足
[l1,c1]-[l1,c2]=[l2,c1]-[l2,c2]
于是我们现在只需要枚举c1、c2,依次计算所有l,只要有任一行与第一行中c1、c2不满足上面的等式,这个矩阵就是不巧妙的。
反之,这个矩阵满足所有情况下的等式,就是巧妙地。
先看2*2矩阵:
a b
c d
巧妙,当且仅当a+d=b+c即a-b=c-d。
要注意一个情况,n个不同行不同列的元素之和均相等,这个条件等价于,任意交换两个元素的列(比如[1,3]、[2,5]变成[1,5]、[2,3]),总和保持不变。
结合2*2的条件,可以得出结论:
一个n*n的矩阵巧妙,当且仅当,任意两行l1、l2,两列c1、c2,满足
[l1,c1]-[l1,c2]=[l2,c1]-[l2,c2]
于是我们现在只需要枚举c1、c2,依次计算所有l,只要有任一行与第一行中c1、c2不满足上面的等式,这个矩阵就是不巧妙的。
反之,这个矩阵满足所有情况下的等式,就是巧妙地。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询