我们可以在1到10 ^ 9之间有一个数字K。 我们必须找出0到10 ^ K之间有多少个数字恰好有两个不同的数字。在考虑每个数字时,我们必须将数字视为: N和10 ^ K-N -1。
尝试使用较小的数字。它工作正常。我不明白我们将如何处理如此大量的信息并仍然处理所有这些信息
if(num_test_cases < 1 || num_test_cases > 100000)
{
cout << FAILURE << endl;
return 0;
}
while(num_test_cases > 0)
{
i = 0;
count = 0;
cin >> Val_K;
if(Val_K < 1 || Val_K > 1000000000)
{
cout << FAILURE << endl;
num_test_cases--;
continue;
}
maxNumber = (unsigned long long)(pow(10,Val_K)) %(1000000007);
for(;i <= (maxNumber - 1); i++)
{
s.clear();
fillDistinct(i,s);
fillDistinct(maxNumber - i - 1,s);
if(s.size() == 2)
{
count++;
}
count = count %(1000000000 + 7);
}
cout << count << endl;
num_test_cases--;
}
return 0;
}
超出时间限制,并弹出SIGTSTP错误