Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 2 года назад, По-английски

Hello.

Here's a small improvement for posts and comments. Likes can now be specified in their markup. Maybe this will be useful for organizing some kind of polls or collecting feedback.

Here are some examples:

Markup
Use square brackets instead of round
Result
Simple likes widget
(likes:1)
Same keys means same likes widgets
(likes:2)
(likes:2)

Same keys and different groups can be used for exclusive choices
(likes:3,option1)
(likes:3,option2)

Yes, I know that this feature can be improved. I would prefer that we try to use it a little and understand what exactly is missing the most. Maybe we need to implement the fully functional polls.

Let's do a small survey using the new feature.

  1. What is your age range?

    • under 16:
    • 16-20:
    • 21-25:
    • 26-35:
    • 36+:
  2. Tabs or spaces?

    • tabs:
    • spaces:
  3. Have you had covid??

    • yes:
    • no:
    • I don't know:
  4. Lately, there have been a lot of meaningless blogs on Codeforces. Is it worth strengthening measures to fight against them?

    • yes definitely:
    • rather yes, but not necessarily:
    • rather no, I read some of them:
    • no definitely:
  • Проголосовать: нравится
  • +745
  • Проголосовать: не нравится

»
2 года назад, # |
Rev. 2   Проголосовать: нравится +68 Проголосовать: не нравится
»
2 года назад, # |
Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится

Please change "you" to "I" in last point : "no definitely, you just don't understand them". Thanks.

»
2 года назад, # |
  Проголосовать: нравится +59 Проголосовать: не нравится

Can we please have an faq section which is more visible/relevant ?

It's annoying how after every contest there's a comment about java code giving TLE due to Arrays.sort() and unordered map giving TLE.

One feature I'd like to see is wiki section where the many educational blogs written on Codeforces can be seen. Currently whenever I have to see/read about a new topic (example -> segment tree) . I have google segment tree codeforces . This shows all the segment tree related blogs on codeforces which include many useless ones. The blogs would be chosen based on upvotes or any other reliable source.

Also thanks for the features.

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +175 Проголосовать: не нравится

    So much support for a list/catalog/wiki of tutorial blogs. Only a few days ago I found out that I had missed an interesting blog about convolutions because I happened to not check the blogs during the 24 or so hours this blog was in Recent Actions. It would be awesome if I could just open the list of tutorial blogs and start reading up on the first thing I don't know. Also as someone who sometimes writes educational blogs it's kinda demotivating to see my blog just disappear into the void after it gets buried under "please debug my code", "rule about third-party code is changing", announcements of old rounds and "someone cheated on Telegram".

    The only issue is preventing this place from being overrun with spam and low-quality tutorials. My suggestion is to simply allow only masters and above (or whatever rating limit feels appropriate) to add blogs to such a page.

    • »
      »
      »
      2 года назад, # ^ |
        Проголосовать: нравится +39 Проголосовать: не нравится

      I've been facing these issues myself as well. You need to constantly monitor recent actions for high quality blogs, lest it gets flooded with spam blogs. The main issue seems to be the fact that "blogs" being the only top-level communication unit forces them to perform all sorts of functions, and useful stuff for some purposes is just spam for other purposes.

      Adding a page with links to good tutorial blogs would definitely be a good idea (and it would be great if it could be kept persistent with all history rather than just a sliding window like recent actions). Perhaps this can be done as a separate section on the EDU page as well, idk.

»
2 года назад, # |
Rev. 2   Проголосовать: нравится +77 Проголосовать: не нравится

Now I can beg for likes without begging for contribution:

I request likes

BTW the widget is displayed as usual text when previewing comments, is that intended?

»
2 года назад, # |
Rev. 3   Проголосовать: нравится +19 Проголосовать: не нравится

Thanks Mike for this amazing feature!

orz Mike for this astonishing feature!

»
2 года назад, # |
  Проголосовать: нравится -23 Проголосовать: не нравится
»
2 года назад, # |
Rev. 3   Проголосовать: нравится +1 Проголосовать: не нравится

BIT

Segtree

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +83 Проголосовать: не нравится

    There's a bit of a bug: when I revert to previous revisions and back to current, the markup doesn't work anymore.

»
2 года назад, # |
Rev. 2   Проголосовать: нравится +13 Проголосовать: не нравится

Do you want Favourite Blog Entries to be collapsible?

  • yes definitely:
  • rather yes, but not necessarily:
  • rather no, I read all of them:
  • no definitely:
»
2 года назад, # |
  Проголосовать: нравится +23 Проголосовать: не нравится

Seriously?! Almost 1/5th of you prefer spaces over tabs!

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +13 Проголосовать: не нравится

    I am actually not sure what exactly is asked there. Auto-replacing tabs with spaces is more or less a standard practice, so which of the two is this?

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
»
2 года назад, # |
Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится

like update works a little weird (when u like smth, the counter jumps on 2-4 likes up)

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Division 3 rounds

Division 2 rounds

Educational Rounds

Division 1+2 rounds

Unrated rounds

»
2 года назад, # |
Rev. 2   Проголосовать: нравится -15 Проголосовать: не нравится

It is decidedly so.

Signs point to yes.

Better not tell you now.

Outlook not so good.

»
2 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

I like it except that the icon is so similar to the like button Facebook used sometime.

»
2 года назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Late editorial after contest:

Fast editorial after contest:

Editorial during contest:

»
2 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Thanks, Mike. This new feature is so great! However, maybe codeforces will have more strange blogs uses this feature but not related to CP. Trash "Likes" blogs may become more.

»
2 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

When you vote likes in a blog at HOME page and then refresh the page, the vote by you is not rendered :(

However when you open the blog page, the like is shown correctly.

This a bug, or it is intended?

UPD: It seems that this issue has been fixed. Thanks all the developers! :D

»
2 года назад, # |
Rev. 8   Проголосовать: нравится +60 Проголосовать: не нравится

Predict how many upvotes this comment will earn:

»
2 года назад, # |
Rev. 3   Проголосовать: нравится -10 Проголосовать: не нравится

Are you having a great Day

Yes : No :

»
2 года назад, # |
Rev. 4   Проголосовать: нравится +1 Проголосовать: не нравится

Unlike voting (the one that affects our contribution), these are revertible at least. Also, we can leave a like to our own widget too.

  • Yes, better:
  • No/ Didn't get:
»
2 года назад, # |
  Проголосовать: нравится +13 Проголосовать: не нравится

What you prefer most for static RMQ

  1. Segment Tree

  2. Sparse Table

  3. Sqrt decomposition

  4. Binary Indexed Tree

What you know of them?

  1. Segment Tree

  2. Sparse Table

  3. Sqrt decomposition

  4. Binary Indexed Tree

Are you surprised to know that BIT can be used for arbitrary RMQ not only prefix?

  1. Yes

  2. No,I already know that before

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится

    Are you surprised to know that BIT can be used for arbitrary RMQ not only prefix?

    I really wonder how to solve it. May you tell me?

    Thanks in advance.

    • »
      »
      »
      2 года назад, # ^ |
      Rev. 3   Проголосовать: нравится +9 Проголосовать: не нравится

      http://ioinformatics.org/oi/pdf/v9_2015_39_44.pdf

      I already implemented query in logn and update in log^2 n but I didn't implement update in logn successfully until now :(

      • »
        »
        »
        »
        2 года назад, # ^ |
        Rev. 4   Проголосовать: нравится +5 Проголосовать: не нравится

        and the query is 4X times faster than recursive segment tree and as fast as iterative segment tree but I think its easier to implement but there is no use of that when I can't implement the logn update (because I am noob)

        if any one can share his implement I will be thankfull :)

      • »
        »
        »
        »
        2 года назад, # ^ |
        Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

        I try implementing the RMQ BIT (queries and updates in $$$O(\log N)$$$) though I am not sure if my implementation is fully correct. I have tried it on the following problems and it seems to be working fine.

        • »
          »
          »
          »
          »
          2 года назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится

          Your code is not logN update.

          You can see that easily as you have two nested loop any of them have logN complexity.

          I tried these problems already when I was trying to implement and get AC but wasn't able to persuade my self so I generated alot of random tests and compare BIT code with a recursive segment tree.

          And the res is the query operations is so fast around 4X times faster than segment tree but update is so slow as its make 10X time than segment tree there can be two reasons that we didn't see the diffrence in these problems.

          1. Not provided a test with alot of update query.

          2. Provided a test like that but small const factor and a fast query cover that.

          • »
            »
            »
            »
            »
            »
            2 года назад, # ^ |
            Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

            You can see that easily as you have two nested loop any of them have logN complexity.

            But the inner for loop is not reset on every iteration of the outer for loop (the pointer i and j can only go up in the tree), so it should be $$$O(\log N)$$$ right? Similiar to how two pointer is $$$O(N)$$$.

            for (int i = 0, j = 0; i < n; ++i) {
              while (j <= i && ...) {
                ++j;
              }
              ...
            }
            
            • »
              »
              »
              »
              »
              »
              »
              2 года назад, # ^ |
                Проголосовать: нравится +3 Проголосовать: не нравится

              Oh I am wrong.

              Yes Yes, you are right I miss read the position of j=p-1

              I thought it was in the increment part but I notice now that it is in the initialization part.

              Thanks for the implementation I will revise it carefully now :")

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится +145 Проголосовать: не нравится

    Are you surprised to know that BIT can be used for arbitrary RMQ not only prefix?

    This is not so surprising if you consider what segments a BIT maintains.

    A BIT maintains the solid segments on the right while it is "missing" the dotted segments (that do appear in the segment tree). Notice that the missing segments are exactly the ones you would get if you added another BIT on the reversed array. So it seems intuitive because with two BITs, you at least have the necessary information to answer range minimum queries.

    And from this image it's also not hard to derive how to answer the queries. You jump left on the normal BIT and jump right on the reversed BIT until you meet. This visits essentially the same things as an iterative segment tree, so a similar constant is also plausible.

    • »
      »
      »
      2 года назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      That what I was able to do.

      the all problem is update query which my implementation wasn't run corectly so I can only use two get min query on every node two update it with total (logn node)*(logn query for each node) =log^2(n)

      I undrestanded the update process corectly but I wasn't able to implement it sadly :(

  • »
    »
    2 года назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Are you surprised to know that BIT can be used for arbitrary RMQ not only prefix?

    For minimum query on prefix, is it possible to perform updates using arbitrary values?

»
2 года назад, # |
Rev. 2   Проголосовать: нравится -13 Проголосовать: не нравится

tabs: 1K

spaces: 277

WTF? I can't believe there are so many people in this community who prefer tabs over spaces. It must be the other way around.

A tab could be a different number of columns depending on your environment, but a space is always one column.

  • »
    »
    2 года назад, # ^ |
    Rev. 2   Проголосовать: нравится +57 Проголосовать: не нравится

    A tab could be a different number of columns depending on your environment, but a space is always one column.

    Exactly. If someone prefers 4 space and you prefer 2, when they use tab you both can see the code in own preferred way. With space you don't have that option. That may be the reason many people prefers tabs.

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Maybe there is a little bug: the marks are not visible when I refresh the page. But it works when I click it and removed from liked.

»
2 года назад, # |
Rev. 2   Проголосовать: нравится +60 Проголосовать: не нравится

No way to see exact number of likes when it crosses 1K. This might be an issue when number of likes for two options are close and both cross 1K.

»
2 года назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится
»
2 года назад, # |
Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

Are u able to implement the like : yes Or no

»
2 года назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

How does this work if you edit your post/comment?

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

scanf & printf :

cin & cout :

fread & fwrite :

write custom read() function :

»
2 года назад, # |
  Проголосовать: нравится +9 Проголосовать: не нравится

exactly one of them tells a lie!

  1. you will like this one.
  2. you will like the third one.
  3. you will like this one.
  4. you will not like this one.
»
2 года назад, # |
Rev. 2   Проголосовать: нравится +51 Проголосовать: не нравится

Maybe we can change the '1K' to something like '1.06K'. This way the number of likes will be clearer as 1.99K and 1.01K are probably shown as '1K' now.

btw orz Mike

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I see only plain text when I go through previous revisions of comments, and it doesn't get fixed when I go back to the recent revision. Also, the icon is not rendered in comment previews.

»
2 года назад, # |
Rev. 5   Проголосовать: нравится +11 Проголосовать: не нравится

When you roll back a revision(click ←) and redo it, you'll find like system failed to be loaded.

BTW in spite of these bugs this is still a great system:)

»
2 года назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

My choices are messed up, it shows the choices I didn't vote for yesterday.

»
2 года назад, # |
  Проголосовать: нравится -41 Проголосовать: не нравится

1.) Like #5 only if it is Thursday

2.) Ignore #1 if you are not currently liking #4

3.) Upvote my comment

4.) If the time in minutes is an odd number, Ignore #6

5.) If you haven't liked an odd number of statements, you must go back and obey enough rules to make your count of obeyed rules a multiple of five.

6.) Ignore #2 if the number of times you have liked #4 and number of upvotes on this comment is a Lucas Number

»
2 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

P.S.This is a test. (Upd: It works!

(Original

qwq | qvq

qaq

QwQ QAQ

(New

Solve the following two-sat problem:

No.1 is 0 or No.6 is 1

No.2 is 0 or No.3 is 1

No.2 is 1 or No.4 is 0

No.3 is 1 or No.4 is 1

No.3 is 0 or No.1 is 1

No.1 is 0 or No.2 is 0

No.6 is 0 or No.5 is 0

No.4 is 0 or No.5 is 1

No.1 No.2 No.3 No.4 No.5 No.6

»
2 года назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится

0-based indexing

1-based indexing

»
2 года назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Need a dislike button.

»
2 года назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
»
7 месяцев назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

wow! amazing feature! loved it

»
6 недель назад, # |
  Проголосовать: нравится -16 Проголосовать: не нравится