Codeforces div.2 B. The Child and Set
2014-06-02 12:30
405 查看
题目如下:
B. The Child and Set
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
At the children's day, the child came to Picks's house, and messed his house up. Picks was angry at him. A lot of important things were lost, in particular the favorite set of Picks.
Fortunately, Picks remembers something about his set S:
its elements were distinct integers from 1 to
limit;
the value of
was equal to
sum; here lowbit(x) equals
2k where
k is the position of the first one in the binary representation of
x. For example, lowbit(100102) = 102, lowbit(100012) = 12, lowbit(100002) = 100002
(binary representation).
Can you help Picks and find any set S, that satisfies all the above conditions?
Input
The first line contains two integers: sum, limit
(1 ≤ sum, limit ≤ 105).
Output
In the first line print an integer n
(1 ≤ n ≤ 105), denoting the size of
S. Then print the elements of set
S in any order. If there are multiple answers, print any of them.
If it's impossible to find a suitable set, print
-1.
Sample test(s)
Input
Output
Input
Output
Input
Output
这道题求出二进制的低位(从最先出现1的位置截断),其实就是位运算,恰好我不熟悉位运算,罪过啊。。。于是恶补了位运算,求二进制低位用i&-i,求最后以为i&1,左移i<<1,右移i>>1,然后从limit枚举,如果小于sum,就加入答案中.
自己的代码太丑了,粘贴一下别人的漂亮的代码:
B. The Child and Set
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
At the children's day, the child came to Picks's house, and messed his house up. Picks was angry at him. A lot of important things were lost, in particular the favorite set of Picks.
Fortunately, Picks remembers something about his set S:
its elements were distinct integers from 1 to
limit;
the value of
was equal to
sum; here lowbit(x) equals
2k where
k is the position of the first one in the binary representation of
x. For example, lowbit(100102) = 102, lowbit(100012) = 12, lowbit(100002) = 100002
(binary representation).
Can you help Picks and find any set S, that satisfies all the above conditions?
Input
The first line contains two integers: sum, limit
(1 ≤ sum, limit ≤ 105).
Output
In the first line print an integer n
(1 ≤ n ≤ 105), denoting the size of
S. Then print the elements of set
S in any order. If there are multiple answers, print any of them.
If it's impossible to find a suitable set, print
-1.
Sample test(s)
Input
5 5
Output
2 4 5
Input
4 3
Output
3 2 3 1
Input
5 1
Output
-1
这道题求出二进制的低位(从最先出现1的位置截断),其实就是位运算,恰好我不熟悉位运算,罪过啊。。。于是恶补了位运算,求二进制低位用i&-i,求最后以为i&1,左移i<<1,右移i>>1,然后从limit枚举,如果小于sum,就加入答案中.
自己的代码太丑了,粘贴一下别人的漂亮的代码:
相关文章推荐
- Codeforces Round #250 (Div. 2) -B. The Child and Set
- Codeforces437 B. The Child and Set
- codeforces --- Round #250 (Div. 2) B. The Child and Set
- G - The Child and Set-CodeForces 437B-水题
- 250 B. The Child and Set
- Codeforces Round #250 (Div. 2)——The Child and Set
- Codeforces div.2 B. The Child and Set
- Codeforces Round #250 (Div. 2)——The Child and Set
- Codeforces #250 (Div. 2) B. The Child and Set
- The Child and Set
- CF437 B. The Child and Set(贪心)
- The ENUM and SET Types
- The "Last Backup Set" check box and hard recovery in Exchange
- 如何设置Java桌面程序界面外观(How to Set the Look and Feel)
- 非递归交换二叉树左右子树:BinaryTree:Exchange the left child and the right child without recursive method
- 递归交换二叉树左右子树:BinaryTree:Exchange the left child and right child of a binary tree
- One or more breakpoints cannot be set and have been disable.Execution will stop at the begining of the programe
- the question regarding "Parent and Child Latches", version 11.1.0.7
- [转]Fun with Locked Pages, AWE, Task Manager, and the Working Set…
- what is the difference between the setTimeout and setInterval