ElectroMaster3's blog

By ElectroMaster3, history, 3 years ago, In English

This is going to be my last blog in codeforces as i am going to quit doing competitive programming.I feel tired of doing it and i figure out i can't stand seeing some people that "worship" cp as their god or something.They only grind and grind without having a life.As the one that is busy nowadays i am unable to keep up with them.So i decided to share about my thoughts on why people don't seem to understand dp quite well.I mean,by making this blog it will enhance my IELTS writing ability and also my knowledge won't go to waste.

Speaking of dynamic programming,we tend to know only some stuff such as recursion and memoization.This is true.However,we can't understand the meaning of dp without knowing a particular topic beforehand,backtracking.

What is backtracking? backtracking is a to get an answer on a specific condition using the previous ones.There are a few conditions to allow backtracking to be executed.This is the reason why dp exists.I will mention them below:

1.There should be some kind of formula that guarantees it's the best option available.

Let's take knapsack as an example.We define dp[i][j] as "in item i and capacity j,which answer would be the best".We only have 2 options,either we take or leave it.This is the thing that make sure dp will be possible.This is one of the form of backtracking.Everything has to be consistent.

2.There should not be a case where the condition broke.

As i've mentioned briefly in the first point,everything has to be the same.You cannot have a case where it can destroys all of the other ones before.Let's consider knapsack again.The reason why knapsack works is because states are only dependent on the previous ones.The future cannot give any impact on the past.For example,dp[i+1][j] will not disturb dp[i][j] by any means.Only dp[i][j] might have the possibility to optimize dp[i+1][j].If we are taking things recursively(which is backtracking),it is the other way around.That is why only 2 flows work,top down and bottom up.

3.There should be a trivial case/base case

In order to make recursion stop,we need to have a non-computable state.This is because,if we don't have an information of something,then it will have infinite recursion.I will take two variables equation for example.If we don't have 2 equations,then we will have an infinite solution for the respective variables.

Okay,i think it should be all for this blog.Hopefully this will help some total noobs out there.The reason i chose this topic is because i don't really see backtracking topics included in a dp section.People tend to miss this crucial concept as a beginner.Alright,this will be the end for now and feel free to help newbies in the comment section.Although,don't contact me to make me revise something on this blog because i won't read them(i quit smh).Anyways,bye everyone :D

Full text and comments »

  • Vote: I like it
  • -14
  • Vote: I do not like it

By ElectroMaster3, history, 3 years ago, In English

(If there is a similar blog like this,please link it in the comment.I don't want blogs about practicing or anything else.I want blogs on how to perfectly AC a problem)

I was discussing with my IGM friend about an interesting problem.It was a really fun discussion.He helped me do it and also mention something that i am really curious on how to fix it:

"You always solve problems partially correct,the rest of your solution is just so random i believe you don't even know how to go back"

I was trying to solve 2000 rated problems in this week but i failed miserably.In the first 5 mins i managed to find the first major idea of the solution.Then,i strayed.When i was trying to actually implement my idea,i used data structures or tricks that are irrelevant to the problem.I'm trying to practice but the problem is that my practice tells me i won't solve this problem.

I need a genuine help,thanks!

Full text and comments »

  • Vote: I like it
  • -25
  • Vote: I do not like it

By ElectroMaster3, history, 3 years ago, In English

At this point i don't care about downvotes or hate comments since i am too stressed that i don't enjoy socializing with my friends and family and eating anymore.I kept failing,If you think this kind of blog is repetitive and you don't want to give any advice at all,please leave.I ask what i want to ask.

Some of you might think that failing is absolutely normal and by practicing one can improve his/her skill.This is true.However,what if your peak performance is at 900 and you are worse than a guy that is new to CP?

Personally,i don't really find anything wrong with my practicing method.My friends also said that i should be better right now but they are as confused as me."Why are you stuck at a rating below average?",my friend asked.i have read all blogs related to practice and i have read every useful resources for beginners.Most of them help on other site but not codeforces.My atcoder rating is constantly going up so i think there is a secret on ranking up on CF(maybe a different kind of practicing method i guess?) and i want to know.

Before you comment "you solved too many 800",i realize this and i find nothing wrong with it.CF is not the only judge and i practice on other sites too.Solving a bunch of 800s is just me when getting bored after school or playing games.I don't count them as practicing tbh.

My usual training method is either solve 1300+ or do algoritihms that i don't know on other website.When i don't understand,i read editorial,find useful tricks and try to take notes or just remember the trick.I also keep algorithm code so i can see again and recall in case i forget.This practicing method has been approved by my expert friend so i try to do this everyday but nothing seems to improve.

I don't know what to say anymmore.

Full text and comments »

  • Vote: I like it
  • +11
  • Vote: I do not like it

By ElectroMaster3, history, 3 years ago, In English

Hi all,

Recently,i did virtual contest on recent round,global round 16.I got AC on problem A and WA on problem B.i did not do the rest.I need your opinion for my performance,Is it good enough for my rating? also how to avoid mistakes like what i did on problem B?

I am sorry if this blog is useless and offensive for high rated user but i am genuinely asking.

Full text and comments »

  • Vote: I like it
  • 0
  • Vote: I do not like it

By ElectroMaster3, history, 3 years ago, In English

I did not quit codeforces thanks to you guys.You guys keep motivating me to solve harder problems.

Today i tried to solve this problem

https://codeforces.net/contest/1497/problem/B

I feel like after grinding bunch of 1200 and having a success rate of 0% i should at least do a problem without the editorial.i decided to try that problem.i was optimistic at first because the problem seems easy compared to what i do before.so i decided to try and solve it.

after a whie,i just realize the problem seems harder than it looks.i wonder what is wrong with my solution.after i give up,i look at the editorial.i found out that the problem is easy.i wonder why i make it so difficult(see my wrong answer attempts and compare it to the ac one)

Perhaps someone can help me? feel free to share your thoughts

Full text and comments »

  • Vote: I like it
  • +14
  • Vote: I do not like it

By ElectroMaster3, history, 3 years ago, In English

today marks my 1 year of competitive programming experience and i did not feel satisfied for the time i've invested for this activity.My performance is really unstable and i did not find a solution for my problem.it is really sad since when i started c++ i felt really enthusiastic to become a grandmaster but turns out i can't even break the barrier of newbie in 1 year.

The first time i went to this website is around 1 month after i started c++.i saw so many great problems and feel really eager to solve every one of them.but i was lazy for few months and decided to change account to this.Being determined to improve,i tried to practice everyday,saw how people code,met new friends and tried to learn new technique everyday.I always feel something is missing when i did not solve a problem in a day.

Thus begin my struggle.I could not solve a problem in a contest,or if i did,i can solve 1-2 problems slowly.i was very confused because i've been practicing problems yet i'm still inconsistent.You can check my contest history.After the contest was over,i waited until the problem rating appears.turns out i could not solve problems that are 800 rated.800 rated is the easiest problem in codeforces but somehow i could not solve it.So i deciced to grind 800-1000 rated problems.

After solving tons of problems in 800-1000 i still feel like nothing's clicking on my mind.i tried to seek help but nothing really helps me.i tried to gain positivity.i always say to myself i can do it.but in reality,i could not.i tried to join contest as much as possible but nothing really changes.it is just me struggling to get to 1000 rating.

After struggling,my friends said that i need to take a break and enjoy life more.i followed their suggestion.i play games at the time when i usually grind.i only study 1 hour a day.i gained a little bit of happiness but my performance dropped.u can see from my graph it went from 900 to 688.

i feel like this is the right time to quit codeforces as i do not know what to do anymore.Everyone says practice makes better and here i am,being one of the example that practice is not always gonna help.sometimes,giving up is an option.

goodbye

Full text and comments »

  • Vote: I like it
  • +12
  • Vote: I do not like it