Evang's blog

By Evang, history, 10 months ago, In English

Anyone find these numbers familiar?

Hint

Full text and comments »

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

By Evang, history, 3 years ago, In English

I'm currently looking for a CP partner, who is willing to grind usaco.guide's platinum module with me. I've already been grinding the platinum module for a while now, and I'm serious about it. My plan is to finish the module by May 1st.

Anyone up for it? DM me if so.

Note, you should be in USACO platinum and around at least expert on CF.

Full text and comments »

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

By Evang, history, 3 years ago, In English

Take a look at this submission in C++ 17: click here

Now take a look at this submission in C++ 20: click here

The only difference is the language version (C++ 17 vs C++ 20). Can MikeMirzayanov look into this? Mostly likely it's due to winlibs, but the compilation error is annoying nonetheless.

Full text and comments »

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

By Evang, history, 3 years ago, In English

Hello

For the past few days, I've been trying to solve this problem, but I still cannot come up with a solution that I can prove.

My only current candidate answer is that the longest common zigzag sequence is always in the longest common subsequence, but because there can be multiple longest common subsequences, I don't know which one to choose. Also, I don't even know if the longest common zigzag sequence is part of the longest common subsequence.

Can anyone help me with this problem? I cannot find any good explanations online.

Full text and comments »

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

By Evang, history, 4 years ago, In English

Hello Codeforces!

I've seen people using negative edges when creating a priority queue because writing a minimum is simply too tedious. And, I gotta say, I agree with them! Look at this code when you have to declare a min heap for a pair of ints:

priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> q;

That simply is too much to write! However, there is a simple solution. Just include this somewhere near the top of your code:

template<typename T>
using min_heap = priority_queue<T, vector<T>, greater<T>>;

Now you can declare a min heap of pairs of ints by writing:

min_heap<pair<int, int>> q;

To me, that is more clear and concise, and less to type! Are there any other reasons that some people might create a min heap by negating edge weights instead of writing that block of code at the top?

Full text and comments »

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