编程题

1777:寻找整数


时间限制: 1000 ms         内存限制: 262144 KB
提交数:263    通过数: 103

【题目描述】

给定整数$m,k$,求出正整数$n$使得$n+1,n+2,…,2n$ 中恰好有$m$个数在二进制下恰好有$k$个$1$。有多组数据。

【输入】

第一行一个整数 $t$ 表示数据组数。接下来 $t$ 行每行两个整数$m,k$。

【输出】

每组数据输出一行两个整数,第一个数表示$2^{64}-1$范围内任意一个满足条件的 $n$,第二个数表示满足条件的 $n$ 的个数(无穷多用$-1$表示)。保证$10^{18}$以内存在满足条件的 $n$。

如果每组数据第一个数全部正确,得$4$分。

如果每组数据第二个数全部正确,得$6$分。

【输入样例】

1
1 2

【输出样例】

2 1

【提示】

【数据规模】

对于10%的数据,$k=2$。

对于20%的数据,$k≤3$。

对于另外50%的数据,保证满足条件的 $n$ 均在$10^{18}$以内。

对于100%的数据,$t≤2000,0≤m≤10^{18},1≤k≤64$。

查看答案
赣ICP备20007335号-2