My USACO Practice Question

Over the past few week, I’ve been diving deep into USACO problems to sharpen my competitive programming skills, and each problem has helped me improve in a specific algorithmic area. Problems like Just Green Enough, Rectangular Pasture, No Time to Paint, and Painting Fence Post helped me understand the power of prefix sums especially for handling range queries and updates efficiently. I also worked on problems like Cow Operation, Field Day Sequence, and The Great Revegation, which introduced me to Disjoint Set Union (DSU), a technique that made it easier to track and merge connected components quickly. Graph traversal problems like Dance Moves, Searching for Soulmate, and Sequence Construction challenged me to use DFS in creative ways to simulate operations or build valid sequences. I even explored bitwise operations and interval merging in Convolute Intervals, which showed me how lower level optimizations can make a big difference. Each of these problems felt like a puzzle that required logic, strategy, and a good grasp of algorithms. As I practiced, I gained more confidence in using techniques like prefix sums, DFS, DSU, and bit manipulation not just in isolation, but as tools I can mix and match to solve complex problems. If you’re curious about how I solved them or want to follow my journey, you can check out all my code on GitHub: https://github.com/Jasper-World/USACO.

YRDSB Elementary Robotic competition 2025 February 26

On February 26, my team and I represented Randall Public School at the YRDSB Elementary Robotics Competition in the Junior Division. Our team consisted of four members, including myself, and I was the team leader. The competition required us to program a robot to complete various challenges, such as picking up blocks, shooting caps into a box, and pushing blocks. Participants were allowed to use either VEX or EV3, and one of my teammates chose VEX. However, I personally preferred EV3, as I had years of experience with it and had won championships in competitions like Roborave and the Botball Asia Division using EV3. Despite my preference, the biggest challenge was not the platform but the strict time limit. Every team member needed to be in the right position and fully focused on the robot’s movements. Additionally, our coding had to be extremely precise, as the course contained negative caps knocking them over would result in point deductions.

After a few days of working together, I assigned roles based on everyone’s strengths. Another teammate and I took charge of coding I had extensive coding experience, while he had his own laptop, making programming more efficient. One of the boys, who was highly skilled in math, was responsible for analyzing the robot’s movements and calculating the angles needed for precise turns. This helped reduce the time spent adjusting the code repeatedly. The fourth member, a shy girl who was great at following instructions, was responsible for assembling the robot and placing cones in the correct positions. However, during the competition, we encountered an issue—having only one person handling the cones was too slow. To improve efficiency, I adjusted our strategy by assigning the movement analyst to assist with cone placement. Additionally, I noticed that my co coder was struggling with speed and accuracy, so I took over the coding myself. This doubled our efficiency, and after seeing my coding and building skills in action, my teammates acknowledged me as their leader.

I carefully studied the competition rules and designed our robot based on the required tasks. Since many challenges involved pushing and grabbing blocks, I created two key attachments: a grabber, built using a small motor, shafts, gears, and two J-shaped beams with rubber bands for extra grip, and a pusher, a large wall with a baffle at the edge to keep blocks contained, which we could swap in when needed. I also ensured our robot was as compact as possible while incorporating all necessary functions. Surprisingly, I found that positioning two small motors correctly created a perfect gap for the large motor, which held the grabber securely. One unexpected challenge was the competition venue itself. The floor at Victoria Square had lower friction than the one at Randall, reducing the robot’s traction. Since we didn’t have enough time to adjust the code, I quickly added a counterweight at the back of the robot to increase traction and stabilize its movement. This solution worked perfectly the robot performed just as it had during practice. Additionally, my grabber functioned flawlessly and proved to be a reliable and steady mechanism. While observing other teams, I discovered alternative approaches, such as simply scooping up the caps, which I found impressive.

After building our robot, my team and I began coding. I could have incorporated advanced techniques, including variables, functions, and loops. But since my teammate had already written part of the code, I had to continue from where he left off. The first major task was cap collection, which required extreme precision due to the small size of the caps if the robot wasn’t perfectly aligned, the caps will fall out. Since we had only started on February 1st, I was only able to code the cap grabbing and block pushing tasks. We frequently knocked over negative caps, forcing us to revise our code multiple times. If the competition had allowed color sensors, I could have programmed the robot to follow a white line surrounded by caps, making navigation much easier. Despite the time constraints, everything worked out well. We scored 258 points, surpassing our school’s Grade 8 division, which had started 10 days earlier but scored 20 points less than us. I found this achievement remarkable. Additionally, I implemented a self returning function, allowing the robot to navigate back on its own while earning an extra 20 points, further boosting our score.

One major challenge during the competition was time management. When we arrived at Victoria Square, we wasted valuable time locating our designated spot. Once settled, we lost even more time troubleshooting the robot’s gripping mechanism. Another issue was our slow start in the early days of preparation my teammates spent too much time debating the robot’s base design rather than focusing on execution. While teamwork and planning are important, this delay significantly impacted our progress. Moving forward, I plan to streamline the design phase and allocate more time to coding, as it is the most critical and time-consuming part of the competition.

Passing USACO bronze section

Two months ago, I participated in the USA Computing Olympiad (USACO) Bronze division, and the result was a great success. I scored 767 points across three problems. In the first problem, Roundabout Rounding, I solved all 13 test cases correctly, and it took me about an hour to complete. For the second problem, Farmer John’s Cheese Block, I managed to pass 7 out of 16 test cases. Looking back, I believe I could have done better, but considering I hadn’t yet learned how to work with 3D grids at the time, I’m still proud and a bit surprised by how much I was able to accomplish. The last problem, It’s Mooin’ Time, was, in my opinion, the most challenging of the three, but I still managed to figure out the solution and pass all the test cases correctly.

Overall, I was very proud of myself for passing USACO Bronze. I’m now currently working toward passing Silver, and I quickly realized that Silver is much harder than Bronze. It requires a stronger grasp of algorithms and greater control over functions. Back when I was preparing for Bronze, I mostly used brute force and vectors. But now, I’ve learned more advanced algorithms such as the two pointer technique, greedy strategies, prefix sums, binary search, BFS, and DFS. On the functions side, I’ve become familiar with built in tools like sort, pair, void, abs, min, max, and more. Hopefully, by the end of this year, I’ll successfully pass Silver and begin my journey toward USACO Gold.

Lanqiaobei-Blue Bridge Cup

In this weekend I attend the Lanqiaobei competition and Sunday is the day of the national competition. This competition is an online one and it faces at all the Chinese people.You have to go through three rounds to know your prize:first you need to fight against the kid living in the same District as you,then only the children who have got the first prize can participate the next round.And ,here I will tell you a two amazing thing first is if the first round you didn’t pass than you have another chance to do it again,second is if you do it very well and you are the one who is top 10% in your district than you can directly advance to the national competition.If you pass the first round than congratulations you are in the second round every one who come here are all elite,and the test is more complicated than in the first round and you have to compete with the kid in the same province,and if you win then you have to face the children who come from every place in China and they are more difficult to deal with than during the provincial competition.But in my opinion if you carefully review the question and do it with the fastest thinking, I believe you can succeed.

And now I will talk about what knowledge you need to succeed the test:If you are preparing to visit round one than at least you need to how to draw an circle on the screen,you open the action and find the display then set up shape and circle,and there is lot of value you need to change and now lets make the circle move we’ll let it move around in x axis.First we need to make variable called x,and we write in a number zero.Second we use a loop and we let the increment the x variable by one every time and give it to the x variable which is the circle one,and now we give it back to the x variable this to refresh the x variable if we don’t do that than the circle will stall in the same place forever .

But if you want to succeed, these are not enough. You need to know what type of questions he will solve for each question. If you’re both in the creative programming intermediate group like me, then these will definitely be helpful for you when preparing for the competition:For the choice question they will always test you for some basic knowledge first.But here is not also easy they will test you for binary and they will write a lot of program involved using variable and math or range module.And next is the Programming questions,the first one they will maybe just let you use you motor to run.The second one is about sound or about the brick status light.These two are very easy right but when come to the third one it change,in the third question you need to use loop and switch and maybe you need to use some sensor like the color sensor.The forth one is about the x variable and y variable they Basically will require you to use many small cubes to assemble large cubes and in the 14th edition they ask you to right 14 in the matrix,here you need to think about whether to write hard or logically using loops and variables to write it.The fifth question is testing you about the variable using and your logic,without too much explanation here, you can check the original questions from previous years to practiceThe sixth one is the same.

Roborave Asia Championship

In the last month I participated in the Roborave competition.I was part of primary line patrol group.My team was the winner.there were four rounds and take the best two times.There were customary and elimination game I will tell the elimination games now.

Our team has two types of program: the general patrol and the gyroscope patrol.In the regular game we use the general patrol and utilize my block builder when the left color sensor detect the black stripe it will turn left the opposite is true on the right.Our car use middle motor to run because with the same power middle motor is faster than other motor

For the gyroscope patrol you need gyroscope sensor the best place to install is to put in the middle of the car ensure you don’t put it upsidedown and this program needs the color senser too the theory is that when the left color senser seen the stripe and we’ll use the gyroscope senser to turn.And it will be faster than the regular patrol

Even though our program was perfect but that also posed problem. When we’re training we find out just having a good program is not enough. You still need a car that suits the program we went through three generations to finally create the right car

At first we use the general big motor but it’s to slow it 100 power is not half as fast as the next generation So then the next one come,this time we use four motor acceleration consequently when first test it crash.the third general is the final one which is the most suitable for our program this time it’s not to fast and not to slow we use just two middle motor.

Or teamwork was very great one of us started the program and I took the car back to the promoter region and the third boy would place the ball in the car after I took it back.This tactic has saved us a lot of time which is an important part of helping us become the winner.Know you may say why don’t other team do that?they do it too but not faster as we did or they has only two people

We also have two little skill we will took a long a timer and when the race isn’t start we would go to every site to test and see where the fastest run is using the same program.Every one knows when you buy a EV3 host it will bring his own EV3 dedicated battery but do you know the one that manufacturer gives you isn’t the one can let the motor run fastest In fact, the household battery at home runs the fastest, but you need to be careful of its battery level at all times because it won’t display the battery level like traditional ones. However, if you fully charge it in the morning, you don’t have to worry about running out of battery

When we first arrive to the site we were excited and a little worried about strong opponents but after about half an hour we took a look around and then we surprised to find that we were the best actually we were five points higher than the second place.