(Last updated time:$$$2023/8/31,14$$$ problems)
Hi guys,here I'd like to share some of my problems(will continue to be updated, depending on your feedback).
All the problems are created by myself.
They contain my aesthetic of problems: the neater,the better. Interest and educational significance are also important.
You can find the editorial for all the problems in the link,so I will only write down some interesting points under the statement.
Let's go :)
1.Increasing and Decreasing
Construct an array $$$a$$$ consisting of $$$n$$$ integers which satisfies the following conditions:
- $$$a_1=x,a_n=y$$$;
- $$$a$$$ is strictly increasing;
- if we denote $$$b_i=a_{i+1}-a_{i}$$$ for $$$1 \leq i \leq n-1$$$, then $$$b$$$ is strictly decreasing.
2.(Yet Another) Increasing and Decreasing
Construct an array $$$a$$$ consisting of $$$n$$$ integers which satisfies the following conditions:
- $$$a_1=x,a_n<2^{30}$$$;
- $$$a$$$ is strictly increasing;
- if we denote $$$b_i=a_{i+1}⊕a_{i}$$$ for $$$1 \leq i \leq n-1$$$, then $$$b$$$ is strictly decreasing($$$⊕$$$ is bitwise-xor).
3.Mex Path
You are given a $$$2 \cdot n$$$ grid $$$a$$$. On the grid,there is a non-negative integer $$$a_{i,j}$$$ in row $$$i$$$ and line $$$j$$$.
You must walk from $$$(1,1)$$$ to $$$(2,n)$$$. Each cell can be accessed at most once.At each step, you can go up, down, or right(but not to the left or beyond the boundary).
Note the set of numbers on the grid you have walked through is $$$S$$$. Find the biggest $$$mex(S)$$$ you can get.
4.Divisor Chain
You are given an integer $$$x$$$. Your task is to reduce $$$x$$$ to $$$1$$$.
To do that, you can do the following operation:
- select a divisor $$$d$$$ of $$$x$$$, then reduce $$$x$$$ by $$$d$$$.
There is an additional constraint: you cannot select the same value of $$$d$$$ more than twice.
Output any scheme which reduces $$$x$$$ to $$$1$$$ with at most $$$1000$$$ operations.
5.Strange Shuffle
There is a big array $$$a$$$ of size $$$n$$$ and $$$a_i=i$$$ initially.
The following process will be repeated cyclically until there is only one element left:
- Erase $$$a_1$$$.
- Note $$$x$$$ is the amount of elements in the current $$$a$$$.Move the first $$$⌊x/2⌋$$$ elements after the last $$$x−⌊x/2⌋$$$ elements.
- Erase $$$a_1$$$.
- Reverse the whole array.
Find the value of the last remaining element.
Now let's increase the difficulty a bit.Here are two interaction problems that I really enjoy :)
6.Get the Segment
There’s a hidden array $$$a$$$ of size $$$n$$$. Each element of the array is either $$$1$$$ or $$$2$$$.
Interact with the judge using queries. Each query is of the form:
l r
You choose two positive integers $$$l$$$ and $$$r$$$ $$$(1 \leq l \leq r \leq n)$$$.The judge will reply with $$$\Sigma^{r}_{i=l}a_i$$$.
Use at most $$$40$$$ queries to find a subarray with sum $$$k$$$(given $$$k$$$ guarante such subarray exists).
7.Xor X,Get MAX
There’s a hidden array $$$a$$$ consisting of $$$n$$$ distinct non-negative integers.
Interact with the judge using queries. Each query is of the form:
x y
: Given two non-negative integers $$$x$$$ and $$$y(0 \le y < 2^{30})$$$ as the query, the hidden array $$$a$$$ is updated by setting $$$a_{x}:=a_{x} \oplus y$$$. After that, the judge will return the maximum value of the updated array.
Make all the elements of the array equal to $$$0$$$ using at most $$$10^5$$$ operations.
There are also some problems that I think have educational significance.
8.Maximum Sum
You're given an array $$$a$$$ of size $$$n$$$.
You can do the following operation any number of times:
Choose any two adjacent element $$$a_i,a_{i+1}$$$;
Note $$$g=gcd(a_i,a_{i+1}),l=lcm(a_i,a_{i+1})$$$,set $$$a_i:=g$$$ and $$$a_{i+1}:=l$$$.
Find the maximum value of $$$\Sigma^{n}_{i=1}a_{i}$$$ you can get(mod $$$10^9+7$$$).
9.Collinear Points
$$$n$$$ points are given on the coordinate system such that the coordinates of the $$$i^{th}$$$ point are $$$(x_i,y_i)$$$ and $$$x_i \lt x_{i+1}$$$ for all $$$(1\le i \lt n)$$$.
Maintain two types of queries:
Type $$$1$$$: You are given $$$5$$$ integers in the form:
1 l r k b
. For all $$$l \le i \le r$$$, change the coordinates of the $$$i^{th}$$$ point to $$$(x_i, k\cdot x_i+b)$$$.Type $$$2$$$: You are given $$$3$$$ integers in the form:
2 l r
. Find whether the $$$l^{th}, (l+1)^{th},\ldots ,r^{th}$$$ points are collinear (lie on the same straight line).
10.Revolving Sushi
There are $$$n$$$ circular positions on the table in the sushi restaurant.
Initially, there are $$$x_i$$$ pieces of sushi in the plate at position $$$i$$$.Every second,the plate at position $$$i$$$ will be put into $$$a_i$$$ pieces of sushi.Then:
- The plate at position $$$1$$$ will move to position $$$2$$$;
- The plate at position $$$2$$$ will move to position $$$3$$$;
- ...
- The plate at position $$$n$$$ will move to position $$$1$$$.
If for each position,the number of sushi is a multiple of $$$k$$$,customers will be happy.
Find the minimum waiting time to make customers happy.If there's no solution,output $$$−1$$$ instead.
UPD1:Thank you for your feedback :) Here are some updates. I would try to put similar problems together.
11.Interesting Connection
For two positive integers $$$x,y$$$,define $$$con(x,y)$$$ as the number obtained by connecting $$$x$$$ with $$$y$$$.For example, $$$con(20,23)=2023$$$.
You're given two integers $$$n,k$$$.You can choose an array $$$a$$$ of positive integers of size $$$n$$$,which satisfies $$$Σ^n_{i=1}a_i=k$$$.
Define the score as the number of prime numbers among all $$$con(a_i,a_j)(1 \leq i,j \leq n)$$$.Find the minimum score you can get.
12.Interesting Operation
Note $$$f(a)=z,f(b)=a,...,$$$and $$$f(z)=y$$$.
You're given an string $$$s$$$ of size $$$n$$$.
You can do the following operation any number of times:
- choose two different indexes $$$i,j(1 \leq i,j≤n)$$$,then make $$$s_i:=f(s_i)$$$ and $$$s_j:=f(s_j)$$$;
Find the minimum number of operations to make all characters in $$$s$$$ to $$$a$$$.If you can not make all characters in $$$s$$$ to $$$a$$$,output $$$−1$$$ instead.
13.Array Counting
You're given two integers $$$n,m$$$.
Count the number of different arrays $$$a$$$ of size $$$n$$$ satisfying:
- All $$$a_i(1≤i≤n)$$$ are positive integers;
- $$$Σ^n_{i=1}a_i=m$$$;
- Take $$$a_1,a_2,...,a_n$$$ as the length of $$$n$$$ edges,the $$$n$$$ edges can form an $$$n$$$-sided shape.
14.Restore the Permutation
Given an array $$$a$$$ of size $$$n$$$, restore the lexicographically smallest permutation $$$p$$$ based on the array $$$a$$$.
For all $$$a_i(1 \leq i \leq n)$$$:
if $$$a_i=-1$$$,it doesn't give us any information;
if $$$a_i=0$$$,it means $$$p_i>p_j$$$ for all $$$1 \leq j <i$$$;
if $$$a_i>0$$$,it means $$$max(j)=a_i,$$$where $$$1 \leq j <i$$$ and $$$p_i<p_j$$$.
Great work! Would be nice if all contest problems had simple statements like these with as little storytelling as possible.
We can gain comprehension skills by simplifying complex problems into simpler problems and subproblems. This is one of the most important aspects of CP.
thank you for sharing, all problems are interesting for me
How is this readable in 60s lol
Alright,maybe $$$90$$$ s :)
nice job!
Great work... I feel every contest should adapt this
Problem 7 looks like it has $$$y < 2^{30}$$$ in the original source, which is a significantly different problem. Also, is the checker for Problem 7 adaptive?
Thx,typo fixed.And the check is not adaptive(do you think some random algorithms can pass?)
Good work, thanks!
Great as always!
Thank you for the problems