我在HackerAth中解决了二进制字符串问题下面的问题,该问题表示“给定四个整数x、y、a和b。确定是否存在一个具有x 0和y 1的二进制字符串,使得等于其中序列“01”的子序列总数为a,等于其中序列“10”的子序列总数为b。”“使用以下代码对样本测试用例进行反向工程:
import sys
s = sys.stdin.read()
for i in s.split('\n'):
string = i.split(' ')
if len(string) != 4:
print('')
else:
x,y,a,b = string
x = int(x)
y = int(y)
a = int(a)
b = int(b)
if (x*y == a+b):
print('Yes')
else:
print('No')
社论中给出的解释是,如果x*y==a+b,那么就存在这样一个二进制字符串,我也发现了对测试用例进行反向工程的方法,但我真的不知道该条件如何满足
给出的示例之一是x、y、a和b分别为3、2、4和2,其中字符串00110是有效字符串,因为3*2=4+2
但是**00110有01和10,它是如何产生的,所以01的数字不等于“a”,10的数字不等于“b”。我遗漏了问题的任何逻辑或其他方面吗?**
有关详细信息,请参阅实际问题link
目前没有回答
相关问题 更多 >
编程相关推荐