bdoi divisional 2013
TRANSCRIPT
-
7/26/2019 BdOI Divisional 2013
1/10
Bangladesh Informatics Olympiad 2013
Divisional Competition
(ID Number): ___________________________________________________
(Name): ___________________________________________________
(Class): ___________________________________________________
(Institution): ___________________________________________________
(Date of Birth): ___________________________________________________
: (Phone): ___________________________________________________
- (E-mail): ___________________________________________________
(Instructions):
. (You can answer either in
Bangla or English.)
. (The answers should be as brief as possible.)
. (Topics mentioned
under Required knowledge are described at the end of the question paper.)
. , , -
(For general solutions Mathematical formula, step by description or programming
code - anything is acceptable.)
. , (Partial
answers will also be evaluated, so we encourage you to answer as much as you can.)
(Number of questions is 10. Each question carries 20
marks.)
-
7/26/2019 BdOI Divisional 2013
2/10
1
Question 1:
N N ? (You are
given an even number N, Find the summation of all even numbers between 1 and N)
i) (Write the general formula) [10]
ii) , N=10 (Find the summation when N=10) [2]
iii) , N=100 (Find the summation when N=100) [3]
iv) , N=2000000000 (Find the summation when N=2000000000) [5]
Question 2:
(Required Knowledge):
(Binary Numbers)
B V V 0
V X (X
0 1) V (You are given a binary
number B and a value V. At the beginning V is 0. Starting from left to right for every digit of the binary
number you will change that value of V. Suppose the next digit is X ( X is obviously 0 or 1).You will
change V in the following process)
V (Previous Value
of V)
X (Value of X) V (New Value of V)
0 0 0
0 1 1
1 0 2
1 1 0
2 0 1
2 1 2
B=110 V=0
) 1 V=0 X=1 , V=1
) 1. V=1 X=1, V=0
) 0 V=0 X=0, V=0
V 0
-
7/26/2019 BdOI Divisional 2013
3/10
2
(Suppose B=110.Then at the beginning V=0;
1) Leftmost digit is 1. As X=1 and V=0 , so now V=1.
2) Next digit is 1.As X=1 and V=1 , now V will be 0
3) Next digit is 0. As X=0 and V=0 , now V will be 0.
So final value of V is 0.)
i) B V (Propose a general
method to find the final value of V for any binary number B) [10]
ii) V B 10110001110010 (Find V when B is the binary
number 10110001110010) [2]
iii) V B 1234 (Find V when B is the Binary representation of
the decimal number 1234) [3]
iv) V B 123456789101112 (Find V when B is the Binary
representation of the decimal number 123456789101112) [5]
Question 3:
0 1 , 0011, 0, 1, 110, 1010, 1111
N 1 0 ? (A bit string consists of only 0
and 1. For example, 0011, 0, 1, 110, 1010, 1111 are some b it strings. How many bit strings of
length N has more 1s than 0s?)
i) N=3 ? (How many string is there for N=3?) [2]
ii) N=10 ? (How many string is there for N=10?) [3]
iii) N=500 ? (How many string is there for N=500?) [5]
iv) N (Propose a general solution of N length bit string) [10]
Question 4:
(Required Knowledge):
(Tree)
, N
(You are given a rooted tree with N nodes. You are currently in the root. You want to visit all the
nodes of the tree at least once. You need one second to go from one node to an adjacent node)
-
7/26/2019 BdOI Divisional 2013
4/10
3
i)
,
? N(How much
time do you need, if you have to go back to the
root in minimum amount of time after visiting allthe nodes? Total number of node including root is
N) [6]
ii)
,
? N (Find the
minimum possible time you need if you stop right
after visiting all the nodes. Total number of node
including root is N) [10]
iii) (i) (ii)
(Find the time for cases (i) and (ii) for
the tree in figure) [4]
Figure Q4(iii)
Question 5::
(Required Knowledge):
/ (Stack/Queue)
pushS(X) X
popS pushQ(X) X
popQ , pushS(1) pushS(2)
[2,1] pushS(3) [3,2,1]popS
[2,1] , pushQ(1), pushQ(2), pushQ(5)
[1,2,5]popQ [2,5] ,
(You are given a stack and aqueue. Given functions are pushS(X) which pushes the value X in top of the stack, popS which pops the
value from stack top, pushQ(x) which pushes the value X in back of the queue and popQ which pops the
value in front of the queue. For example, if we execute pushS(1) and pushS(2) the stack will look like [2,1]
from top to bottom. And then if we pushS(3) then the stack becomes [3,2,1]. After a popS it becomes
[2,1]. Similarly for pushQ(1), pushQ(2) and pushQ(5) the queue looks like [1,2,5] from front to back. After
a popQ it becomes [2,5]. Now given a set of instructions executed one after one, write the condition of the
stack and queue after executing each instructions. the first two is done for your convenience) [20]
-
7/26/2019 BdOI Divisional 2013
5/10
4
i) pushS(1) Answer: [1],[]
ii) pushS(2) Answer: [2,1],[]
iii) pushQ(5)
iv) popS
v) popQ
vi) pushQ(10)
vii) pushS(3)viii) pushQ(20)
ix) pushS(popQ)
x) popS
xi) popS
xii) popQ
Question6:
(Required Knowledge):
/ (Stack/Queue)
reverse(k) k
, [1,3,5,4,6], reverse(3) [5,3,1,4,6].
[1,3,5,4,6]
reverse(3), reverse(4), reverse(3) reverse(2) [1,3,4,5,6]
(You are given a stack and a operation reverse(k) which
reverses the order of the top k element of the stack. For example, if a stack is [1,3,5,4,6], after reverse(3)
it becomes [5,3,1,4,6]. Using only this operation sort a stack from lowest to highest value. For the stack
[1,3,5,4,6] in example we can perform reverse(3), reverse(4), reverse(3) and reverse(2) to get [1,3,4,5,6].
Try to do this using minimal number of operations.)
i) [1,7,5,2,4,3,6] (Write the operation sequence for the stack
[1,7,5,2,4,3,6]) [7]
ii) (Write the general steps to solve the problem) [13]
Question 7:
(Required Knowledge):
(Recurrence Relation)
i) b(n) (Find of the value of b(n)) [4]
b(n) = 2b(n-1) + 3, where b(0) = 3, n >= 0
1 n = 3
2 n = 10
-
7/26/2019 BdOI Divisional 2013
6/10
5
ii) a(n) (Find of the value of a(n)) [6]
a(n) = a(n-1) + 7b(n - 2) where a(0)= 2, n >= 0 [b(n) (The definition of
b(n)is mentioned in question i)]
1 n = 3
2 n = 10
iii) F(n,k) (Find of the value of F(n,k)) [10]
F(n,k) = 2F(n-1,k) + F(n-1,k-1) where, F(0,k) = 1, F(n,0) = 1, n >= 0 and k >= 0
1 n = 2, k = 2
2 n = 5, k = 3
Question 8:
(Required Knowledge):
(Recurrence Relation)
n 3 ?
(How many n-digit numbers are there, where the sum of every adjacent digit is less than or equal to 3?)
n = 3 30 (Example: For n = 3, there can be 30 such numbers.)
[000, 001, 002, 003, 010, 011, 012, 020, 021, 030, 100, 101, 102, 103, 110, 111,112, 120, 121, 200, 201,
202, 203, 210, 211, 212, 300, 301, 302, 303]
i) n = 4 (Find the result for n = 4.) [3]
ii) n = 7 (Find the result for n = 7.) [5]
iii) (Find a recursive solution of the problem.) [12]
Question 9::
n
1 n , x
x
5 5 1 25 1
5 1*2=2 5 2 (1 5)
-
7/26/2019 BdOI Divisional 2013
7/10
6
12 12 1, 2, 312 1,2 3
12 3*2=6 12 6 (1, 2, 3, 4, 6 12)
, ?
1 [5]
2 1 100
[15]
(Professor K invented a process to find how many factors (divisors) are there of a number n. The process
is:
Find out the number of positive integers between 1 and the square root of n, which are factors of
n. Let this value to be x.
The answer is twice the value of x
For example: For n = 5, Only 1 and 2 is less than the square root of 5. Of them only 1 divides 5. So
according to the process of professor K the number of factors is 1*2 = 2. 5 has 2 divisors (1 and 2)
For n = 12, Only 1, 2 and 3 are less than the square root of 12. Of them 1, 2 and 3 divides 12. So
according to the process of professor K the number of factors is 3*2 = 6. 12 has 6 divisors (1, 2, 3, 4, 6,
12)
Do you think professor Ks process is correct?
1 If not, show an example for which the process will fail. [5]
2 For how many numbers between 1 and 100 this process will fail?) [15]
Question 10::
n
k m
n = 4, k = 3, m = 2 PP.P( P .
) .PPP, PPP., P.P. PP..
i) n, m k [12]
ii) n = 5, k = 3, m = 2 [3]
iii) n = 1000000000, k = 30, m = 25 [5]
-
7/26/2019 BdOI Divisional 2013
8/10
7
(n pigeonholes are kept side by side in a row. You want to put pigeons in some of the holes in a way that
for every k consecutive holes there will be exactly m holes with a pigeon. There shouldnt be more than
one pigeon in a hole.
For example:
For n = 4, k = 3, m = 2, a solution can be PP.P(HereP means a pigeon and. means a hole). But
.PPP, PPP., P.P. or PP.. arent solutions.
i) Write a general formula to find the number of solutions for n, m and k. [12]
ii) n = 5, k = 3, m = 2 [3]
iii) n = 1000000000, k = 30, m = 25 [5]
(Appendix)
(Recurrence Relation)
,
(In mathematics, a recurrence relation is an equation which defines a sequence where one or more initial
terms are given and each further term of the sequence is defined as a function of the preceding terms.)
, (For example, consider the following recurrence relation)
T(n) = 2T(n-1) + 1, T(0) = 0
(Building a table of values yields the following)
n 0 1 2 3 4 5 6 7
T(n) 0 1 3 7 15 31 63 127
T(n) 2n-1
(We might conjecture that that the
value of T(n) is 2n-1 which is true. You can prove it using mathematical induction. One well known
recurrence relation is the Fibonacci sequence.)
(Binary Numbers)
0
-
7/26/2019 BdOI Divisional 2013
9/10
8
(Its possible to uniquely express any number as a sum of one or more power(s) of two. We
can express the number as a sum of each used powers of two multiplied by 1 and each unused powers
multiplied by 0. Youll get a better idea from the following example)
11 = 8 + 2 + 1 =1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 1011 in Binary
0 1 2 3 4 5 6 7 8 9 10
(Binary)
0 1 10 11 100 101 110 111 1000 1001 1010
(Stack)
Push
Pop [1, 2] 1
Pop 1 [2] Push(3) [3,2]
(Stack can be compared with a pile of books. If we want
to put a new book in the pile we put the book on the top and if we remove one we remove from the top
too. Here putting something is called Push and removing is called pop. For example, if we have a stack
[1,2] where 1 is the topmost item. If you pop we will get 1 and the stack becomes [2]. After Push(3) the
stack becomes [3,2]. Thats why stacks operation is called Last in first out)
(Queue)
Push Pop
[1, 2] 1 Pop 1 [2]Push(3)
[2,3] (Queue can be compared
with a line in front of a bus counter where a new person stand in the back of the line and the ticket is
given to the person in the front of the line. Here standing in the back is called Push and giving ticket to the
front person is called Pop. For Example, we have a queue [1,2] where 1 is the front item. If we Pop we
will get 1 and the queue becomes [2]. If we Push(3) then the queue becomes [2,3]. This nature of queue
is called First in first out)
-
7/26/2019 BdOI Divisional 2013
10/10
9
(Node):
(A point or object. In the figure, there
are ten nodes.)
(Edge):
(The
relationship between two nodes. It is represented
as a line between two nodes. These node are
considered to be adjacent to each other. For
example, in the figure. 4 and 9 are adjacent to 3. 4and 7 are adjacent to 6.)
(Root): (A
special node. Here 3 is the root.)
(Predecessor):
,
(The idea
of predecessor is best explained from the figure.
Here node 4 is the predecessor to 10, 5 and 6.
Root does not have any predecessor.)
(Tree):
n n-1
(Collection of nodes and edges such that every
node other than the root has exactly one
predecessor. A tree with n node has exactly n-1
edges.)