Evang's blog

By Evang, history, 24 hours 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.

Read more »

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

By Evang, history, 3 months 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.

Read more »

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

By Evang, history, 15 months 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?

Read more »

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