欸嘿嘿这场比较简单,但是依然无法全对呜呜呜呜
问题 A: 魔术数
题目描述
X是一个正整数,它的第i个数字是d[i],则 序列(d [1],d[2],d[3],...,d[t])是X 的数字表示(没有前导零)。特别地,d[1]是最高位数字并且d[t]是X的最低位数字。例如,X = 576的数字表示是(5,7,6)。我们说整数X是魔术数,当且仅当:
1、X是某个整数的平方,即对于某个整数Y ,X = Y * Y。
2、对于X 的数字表示(d[1],d[2],d[3],...,d[t]),它满足d[1] < d[2] > d[3] < d[4]......,依此类推。也就是说,对于每个奇数下标i < t,满足d[i] < d[i+1],并且对于每个偶数下标i < t,它满足d[i] > d[i+1]。
给定A和B,输出A和B之间有多少魔术数。输入
多组测试数据。
第一行,一个整数G,表示有G组测试数据。1 <= G <= 10。
每组测试数据格式:
一行,两个整数A和B。 1 <= B <= 10^10。 1 <= A <= B 。输出
共G行,每行一个整数。
样例输入 Copy
3 1 64 50 60 121 121样例输出 Copy
7 0 1
问题 B: 存在
题目描述
给出一个B数组B[0...n-1]。你要寻找另一个数组A[0...n-1],使得A数组同时满足如下条件:
1、对于0<=i<n, A[i]必须是2^j,其中j是正整数。即A[i]必须是2,4,8,16,32,64...等这样的数。
2、对于0<=i<n, A[i]^B[i]必须能被P整除, 其中P=A[0] * A[1] * A[2] * ...A[n-1]。
注意:对于本题,^都是表示幂,也就是多少次方,例如:2^3表示2的3次方,故2^3=8。
如果你能找到这样满足上面要求的A数组,那么输出“Possible”,或者输出“Impossible”,双引号不用输出。输入
多组测试数据。
第一行,一个整数G,表示有G组测试数据。1 <= G <= 13。
每组测试数据格式:
第一行,一个整数n。 1 <= n <= 50。
第二行,n个整数,第i个整数是B[i]。 1 <= B[i] <= 10。输出
共G行,每行一个字符串,“Possible”或者“Impossible”,双引号不用输出。
样例输入 Copy
4 2 3 2 3 3 3 3 2 1 10 3 2 3 10样例输出 Copy
Possible Possible Impossible Possible提示
第一组测试数据:A[] = {2,2}
第二组测试数据:A[] = {2,2,2}
第四组测试数据:A[] = {8,4,2}