0
已解决
王子健
初级天翼
初级天翼
4976 喵阵 经验值:800
题目描述 Description
喵阵如下:
这个
可见,A_kAk是一个2^k * 2^k2k∗2k 的矩阵。
现在告诉你kk的值,求第xx行第yy列的数字。
输入描述 Input Description
输入有一行,三个数,分别是k(1≤k≤30),x,y(1≤x,y≤2^k)。
输出描述 Output Description
输出有一个数,数值为0或1,表示第x行第y列的数字。
样例输入 Sample Input
2 2 2
样例输出 Sample Output
0
数据范围及提示 Data Size & Hint
来自酷町喵的提示:把每一个矩阵分成四个的小矩阵来看。
看到输出为0或1时我笑了,直接输出1得60分,题目硬是没看懂,望求解,50豆
#include <iostream>
#include <cstdio>
using namespace std;
int k, x, y;
int main() {
cin >> k >> x >> y;
cout << 1;
return 0;
}
我笑了
王子健在2020-11-07 08:49:13追加了内容
顶
3
已采纳
张睿杰
高级守护
高级守护
这个首先难的地方是构图,不知道你构图会不会,我先跟你说说怎么分析这道题
首先下面有提示把每一个矩阵分成四个的小矩阵来看。
然后我们按照这个提示切割这个矩阵
,发现这没有什么规律,这时候我们对比第一个
,会发现原来的1下面和右边变成了1,而右下角变成了0
再看第三个发现不管是0还是1都是遵循一个规律
此数的右边和下边都和本数一样,而右下角则是相反的数
那么我们可以发现,矩阵里面的每一个数字都是由最开始的第二幅图当中的4个数字变化而来的
所以我们可以进行逆推,把当前的横下标+1然后除以二,纵坐标+1然后除以二,一直到横坐标纵坐标皆<=2结束
如果你有什么不懂得,可以加我的qq,3495649051,我可以再给你进行详细的解答
0