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

Автор FastestFinger, история, 6 лет назад, По-английски

1365A - Matrix Game

Tutorial
Code

This problem was prepared by Ashishgup

1365B - Trouble Sort

Tutorial
Code

This problem was prepared by Ashishgup

1365C - Rotation Matching

Tutorial
Code

This problem was prepared by Ashishgup and ridbit10

1365D - Solve The Maze

Tutorial
Code

This problem was prepared by Vivek1998299

1365E - Maximum Subsequence Value

Tutorial
Code

This problem was prepared by Ashishgup and ridbit10

1365F - Swaps Again

Tutorial
Code

This problem was prepared by FastestFinger, Ashishgup and Vivek1998299

1365G - Secure Password

Tutorial
Code

This problem was prepared by FastestFinger

Разбор задач Codeforces Round 648 (Div. 2)
  • Проголосовать: нравится
  • +626
  • Проголосовать: не нравится

»
6 лет назад, скрыть # |
Rev. 4  
Проголосовать: нравится -36 Проголосовать: не нравится

..

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

    I don't know what is the point of making A is the hardest problem !

    UPD: after reading the editorial , problem A is easy but I understood it wrong

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

      I think A is simple, I misunderstood the statement, and I thought cells that share sides, and it was cell that share columns or rows (I assumed something that was not in the statement and that is my fault)

      • »
        »
        »
        »
        6 лет назад, скрыть # ^ |
         
        Проголосовать: нравится -23 Проголосовать: не нравится

        Yeah,me too.And during the contest I felt stupid enough to come up with an approach for D and not A

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

        Can anyone solve this if we consider this variant of problem?

        It seems to be quite interesting one.

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

          deleted.

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

          I calculated a few Grundy numbers for small cases. Maybe someone can see some pattern in them.

          Table of Grundy numbers
          Code
      • »
        »
        »
        »
        6 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +4 Проголосовать: не нравится

        I did the same mistake, misread the statement

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

        I also assumed the same , and could not solve the problem A due to that .

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

        me too

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

      I too solved B, C and D and wasn't able to solve A :(

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

      It wasn't that hard, you just had to determine the number of totally unassigned rows and columns. Take the minimum of them. Ans by checking the number even of odd.

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

      yeah, I thought that the question was talking about boundary of claimed cells

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

      same here buddy

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

Wow, that was fast.

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

Good round! Thanks for fast editorial

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

Amazing contest! Had fun solving the problems ^_^

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

FastestFinger fastest editorial <3

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

It says tutorial is not available. Anyone else having same problem ?

UPD : It's working now

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

Hardest A ever seen.

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

Had 15min left for round so didn't try E and now I see this

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

.

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

I feel so stupid after reading the editorial for problem B

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

those were some really interesting problems tbh rather than pure bash it's observation only (except D but that was fun too)

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

For C, isn't the time complexity still O(n) if you use a HashMap?

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

i tried bubble sort in B when condition satissfies that is when A(i) >A(J) AND B(i)!=B(j) then swap it.And at last checked if its sorted or not? why its giving WA

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

For wrong answer on E, try this -> 2 12 6 . I got it after the contest :(

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

I thought we could only switch adjacent numbers in B..

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

Damn I feel so stupid after seeing E's solution

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

What is __builtin_popcount?

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

Nice contest! Didn't quite get understand the proof for E while doing the contest, but proof by example and proof by AC is good enough for me :)

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

Where are the memes

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

Thanks for nice problems. Though I couldn't solve A,B,C during contest time, I am still happy. Cause Now I know what I should know that I don't know.

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

D was fun to solve.

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

No relevant memes this time? We need TheOneYouWant as Co-Author from next time ig.

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

Can someone tell me why my E fails? Feels like I've done the same thing

Code

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

This was completely Mathforces!

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

Most probably I will be losing my rating in this Contest. But No worries, the questions were too good [Especially the E qn]. I definitely want Ashishgup to host contests more frequently.

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

Great contest with problems that focus on elegant observations. Look forward to more such!

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

Great contest and hands down the hardest A and B i have seen in a long long time.

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

Has the record for fastest editorial ever been broken?

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

As a low rated coder I enjoyed it too, thanks!

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

Can anyone explain why my solution for D failed? First, I checked if any B has G as a neighbor or not. Then, I replaced all empty spots around B as walls. Then I ran a dfs from the right-bottom. https://mirror.codeforces.com/contest/1365/submission/82867892 Thanks.

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

I love how you separated the editorial into key idea and solution so people have a second shot at upsolving without looking at the solution

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

My idea for the solution to D is check if the bad guys can reach the end, if yes, then block all the neighbouring cells. Then check if all good guys can reach the end. Why does this fail on pretest 7?

Link to my submission : https://mirror.codeforces.com/contest/1365/submission/82872417

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

The intended solution to problem G is pretty. Unfortunately for me, the solution I found was much uglier, and was a slight modification of the binary search idea.

Given two integers $$$i \neq j$$$, either there is a bit set in $$$j$$$ which is not set in $$$i$$$, or $$$\mathrm{popcnt}(i) \gt \mathrm{popcnt}(j)$$$ (where $$$\mathrm{popcnt}(k)$$$ is the number of bits set in $$$k$$$), in which case there is some bit un-set in $$$\mathrm{popcnt}(j)$$$ which is set in $$$\mathrm{popcnt}(i)$$$. Applying this directly would require 10 queries that examine values of $$$i$$$ with various set bits, and 4 queries that examine values of $$$i$$$ with various unset bits in $$$\mathrm{popcnt}(i)$$$, which doesn't quite fit within the bounds of the problem. But there are enough 10-bit values of $$$j$$$ with $$$2 \leq \mathrm{popcnt}(j) \lt 10$$$ (to enable using only 3 queries based on $$$\mathrm{popcnt}(j)$$$) to barely nudge this idea across the finish line by first mapping into that pool of values.

EDIT: Now that systests are over, I was able to produce a submission demonstrating this approach. (82885957)

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

Oh my god, I feel so stupid. I got the observation for E, but for some reason I thought n^3 was too slow. I spent almost an hour trying to figure out how you can know which 3 give the largest value. Well, at least I won't make this mistake next time (hopefully).

Other than that, I really liked the contest. Fun problems.

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

    I'm still stuck at the point where I can't reach why a subset of 3 is enough. Can you help with a better explanation?

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

      Let's say we have a subset with more than 3. We can call the numbers in the subset a1, a2, a3, ..., an. The value of the subset is the sum of all the bits present in at least k-2 of the ai. But, if a bit is in k-2 of them, it must be present in at least one of a1, a2, a3. If it wasn't, we'd have at most k-3 ai with that bit. This means: any bit which contributes to the value of a1, a2, ..., an, also contributes to the value of a1, a2, a3. So in fact, the value of a1, a2, a3 is at least as large as the value of the whole subset. Thus you can always reduce the subset to one of size 3.

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

My performance timelapse: Link. Hope you enjoy :)

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

Problem D video editorial: sOlUtiOn

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

We all should appreciate them for this quick editorial

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

consider for question A, m =5 and n =2 and filled with all 0s. min(m,n) is 2, so as per question Vivek should win. but, actually ashish will win this.

first step,ashish,

row 1 :1 0 0 0 0,

row 2 :0 0 0 0 0

second step,vivek,

row 1 :1 1 0 0 0,

row 2 :0 0 0 0 0

3rd step ,ashish,

row 1 :1 1 1 0 0,

row 2 :0 0 0 0 0

4th step vivek,

row 1 :1 1 1 1 0,

row 2 :0 0 0 0 0

5 th step ashish,

row 1 :1 1 1 1 0,

row 2 :0 0 0 0 1

The question said row or column. so, this must be optimum, just a doubt,please clear

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

I felt like dumb.. even though it's stupid for me to think so but I am glad others found A and B hard..

Nice problemset. Anybody else know where can I practice such bit manipulation problems?

Ashishgup is the hardest problemsetter for me till date. It's a given now..

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

I want to know what is the story behind FastestFinger's handle

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

how to solve A if cell having common edge with claimed one are not to be taken ??

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

 Gotta be careful with these maps.

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

F is a truly beautiful problem. Love this kind of problems where you don't have to even know some complex data structures or algorithms. Even someone inexperienced with deep insight could solve it and the solution is brilliant. This contest once again reminded me that solutions themselves can sometimes be the simplest (as in E and F).

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

Feeling very dumb of me, right now. I got to the intended O(n^3) solution of Problem-E. But, thought, it would give TLE (So dumb of me) and so, tried a greedy approach to solve it, but was't able to pass the pretests! :(

Problems were too amazing. You just get the basic approach, and that's it! No heavy implementation. (Except D, but that was fun too).

Thanks to the authors.

Awaiting more such rounds on CF.

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

today i face very unique problem during contest on problem D . I run same code on 3 different ide and i get 3 different output on each ide for first test case. anyone know how it is possible? https://mirror.codeforces.com/contest/1365/submission/82870625

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

can some one tell test case where my solution of problem D fails . I solved for finding the path recursively instead of bfs .submission

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

https://mirror.codeforces.com/problemset/problem/1174/B B was the same problem as above with just a slight change in statement, now i see why practice helps.

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

 

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

Can anyone tell me what is wronge with my code Trouble Sort https://mirror.codeforces.com/contest/1365/submission/82849016

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

Tricked me in E. If problem E was placed at C, I would have solved it. Regret missing on such a simple logic.

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

Where are the memes?

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

Easiest Div2E I have ever seen. For me it was simpler than all other problems in this contest.

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

Great editorial !!**I think Every editorial must contain Key Idea.so that we can proceed by ourselves**

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

this was an unfair contest question F was easier compared to earlier questions

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

Could anybody please explain me why in Div .2 B array can always sorted if 0 type and 1 type is present

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

I can't think how my E failed , I just grouped and sorted numbers by the last set bit and took the or of three largest numbers in the top 3 bits...should not it be correct

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

Very nice problemset, not as a CP contest, but they are very beautiful indeed.

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

fuuuuuuuuuuuuu,.... , this C , damn itttt.

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

I solved the Problem D using DP. At first I make all the side of bad person("B") to "#"(except if the side has a bad person("B")).After that I will make all the remaining "B" to "#".So I get rid of that "B". Check that if we made the (n,m) cell to "#" then the answer is "No". Otherwise we now backtrack from (n,m) cell to all the possible direction cell we can go.As we can go to same cell many times so we will save that information in an array.If we visit that cell make dp[i][j]= true otherwise false.Beside that If we get a good person("G") through backtracking, we will save that. After backtracking we now check how many good person we get through backtracking.If the number is the same as all the good person then our ans is "Yes" otherwise "No". My code is here:82880358

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

If someone can really tell me why is this runtime error on Test Case 28 ! I will be thankful

HERE

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

If you scored less points for problem d than for c....... Welcome to the club.....

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

G is brilliant! Looked impossible at first.

Miss the memetorials.

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

How to solve problem C ,if we have repeated elements in array a and b?

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

In A, Dry running the editorial code should return "Ashish" for this test case, but the answer given is "Vivek". Here mn = min(5-1,10-1) = 4 (which is even, should return "Ashish"), or am I making some mistake?

5 10

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

Amazing problems! $$$G$$$ is really nice and unique.

BTW problem $$$F$$$ in OEIShttps://oeis.org/A037223

If the given numbers are unique that is, assume $$$A$$$ is a $$$[1..N]$$$ and $$$B$$$ is a permutation of $$$A$$$. But it can be easily generalized to something like this:

for _ in range(int(input())):
    q,f=lambda:list(map(int,input().split())),lambda x:sorted(zip(x,x[::-1]))
    q(),print(['no','yes'][f(q())==f(q())])

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

Can someone suggest what changes I can make to my submission D in python (I used pypy compiler), it gives TLE for test 13. I have implemented the same as editorial to my knowledge. https://mirror.codeforces.com/contest/1365/submission/82883245

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

Why were the constraints for f so low ? Given that we can solve in nlogn ?

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

Would be awesome if someone can let me know why my same exact idea/concept TLEs when implemented in DFS but somehow passed in BFS :/ https://mirror.codeforces.com/contest/1365/submission/82870178 https://mirror.codeforces.com/contest/1365/submission/82883583

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

Weird constraints. It taught me a lesson though.

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

wow! editorial come so early

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

Hey everyone, I am hoping to get some help on why my submission to problem F fails. What am I doing wrong here? Thanks in advance.

82883731

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

Thanks for nice problems, as well as quick and detailed editorial as well. Couldn't solve much during contest but learned a lot:)

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

There is something wrong with the codes.

#include
using namespace std;

and

map, int> pairs;

in problem F

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

In problem C. Now for each shift, we can find the number of matching pairs and take the maximum.

Can someone please explain this line and in which step it is happening in editorial code?

for(int i = 1; i <= n; i++)
	{
		int cur = pos[b[i]] - i;
		if(cur < 0)
			cur += n;
		offset[cur]++;
	}
	int ans = 0;
	for(auto &it:offset)
		ans = max(ans, it.second);
	cout << ans;
  • »
    »
    6 лет назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится 0 Проголосовать: не нравится
    int ans = 0;
    for(auto &it:offset)
    	ans = max(ans, it.second);
    cout << ans;
    

    basically 'curr' is obtaining the number of shifts required for element at ith position to match. and then its frequency is being stored.

    then in the above part of code the maximum frequency is obtained and is the answer.

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

    First, you calculate the offset between the positions of $$$x$$$ in $$$a$$$ and $$$b$$$, for all $$$x$$$. Let $$$d$$$ be the offset that appears more often. Then you shift the sequence $$$d$$$ times, and have the maximum number of correct digits. See my code:

    for (int i = 1; i <= n; ++i) {
    	++diffs[(digita[i] - digitb[i] + n)%n];
    }
    	
    int maxi = 0;
    for (int i = 0; i <= n; ++i)
    	maxi = max(maxi, diffs[i]);
    
    printf("%d\n", maxi);
    

    The offset is (digita[i] — digitb[i] + n)%n, because digita[i] — digitb[i] can be negative.

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

I'll have to go with antontrygubO_o here. Problem G stands for Problem Genius!

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

Thanks for a fun contest! Well written problem statements — brief, good grammar etc. — to the point and very effective. Thanks for making this about solving the problem, rather than understanding the problem statements.

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

I liked the way of mentioning the Key Idea in the beginning of the tutorial :)

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

how can div2E pass n^3 solution? isn't that 10^8 for n=500

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

E is too easy, I think it should just be B or C, or should increase the limit

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

Why did we choose bfs instead of dfs in D?

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

My solution for D:

Make sure every bad person is surrounded by a grid of walls, something like this

...     .#.         ...     .#.
.B. --> #B#    or   .BG --> .BG 
...     .#.         ...     .#.

After that, run a DFS from (n,m) and count the number of G's (count_G) and B's (count_B) on your path without crossing any #(wall).

 if(count_G == total_G_in_the_matrix && count_B == 0) return YES
 else return NO
Code
»
6 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

2 2 BG #.

can anyone explain how its answer is no please

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

    You can only block the path of $$$B$$$ if you place a wall on the cell $$$(2,2)$$$, which would also block the path of $$$G$$$. Hence, it is not possible.

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

    in this case, it is not possible to block the bad person to go to the destination cell (2, 2) if the good person can go in the destination cell (2, 2). The bad person will just follow the path of the good person as there is no way to separate them by using some walls.
    NB. You have to perform the blocking operation before moving any person i.e before the journey starts.

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

assign the masks in such a way that no two masks assigned to two indices are submasks of each other. Anyone please explain. Problem G

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

FastestFinger In the code section of problem F "map, int> pairs; " should be "map<int, int> pairs;" I think.

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

Problem A

n=2, m=3

0 0 0

0 1 0

For this test case, shouldn't the answer be Vivek? Correct me if I have understood it wrong.

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

    initially, there are only 2 possible moves for Ashish, either choose the cell(1, 1) or cell(1, 3). After one of these two moves, the grid will be looked like

    1 0 0
    0 1 0
    

    or

    0 0 1
    0 1 0
    

    After this, there is no way to choose a cell following the criteria described in the statement.
    Hence the result is "Ashish" .

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

Test cases for F is not strong enough.

I believed I hacked some AC submissions using this data set. Obviously the right answer is No, but they all returned Yes.

1 3 8 9 8 9 8 9

Submissions:

https://mirror.codeforces.com/contest/1365/submission/82823958 https://mirror.codeforces.com/contest/1365/submission/82854157

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

Is it just me or does anyone else also feel that problem C is the new B and Problem D is the new C in the recent rounds?

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

I am getting memory limit exceeded in test case 4 of problem D. The link to my solution is https://mirror.codeforces.com/contest/1365/submission/82901871. Can anyone help me in knowing where I am going wrong.

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

For problem E , Why maximum element isn't always considered in finding or?

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

    Consider a[] sorted max element first, descending. Let $$$b(x)$$$ be the set of bits in x.

    If $$$b(a_1)=b(a_2 + a_3)$$$ then it is always better to not choose $$$a_1$$$, because all bits of it a covered by the other two elements. And we can add $$$a_4$$$ instead of $$$a_1$$$ to getter a better result.

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

Can we solve $$$E$$$ using $$$DP$$$? I tried solving using $$$DP$$$ in the contest time but got $$$wa$$$ on pretest $$$6$$$. My $$$DP$$$ idea was pretty simple.

code

Still not understanding why got $$$WA$$$. Please help

N.B: It is failing on cases like

6

18 8 1 4 6 16

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

    Consider input

    4
    6 4 2 1
    

    The bits of second and third element of the array equals the first one. If you start adding from left to right, you would need to find that 6 is covered by 4 and 2, so you can remove it to add 1 instead.

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

Can someone please find out the error in my code : https://mirror.codeforces.com/contest/1365/submission/82866772 I tried greedily since picking the max set bit would always be useful. I set k to the cnt of numbers having the max bit set. Now I went through all bit positions and checked if there cnt was more than max(1,k-2). If yes I added (1<<i) to my ans. Giving wrong answer on 6th pretest.

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

    Your idea is wrong, try with this case:

    7
    8 8 4 4 2 2 1
    

    Ans should be 14.

    The reason is that if you pick the two 8s, your code would check if it could pick one 4, then if it could pick one 2... but if you pick 4 numbers then the 4 and the 2 won't be taken into account, as there isn't at least 2 of each type.

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

what was the point of making so small constraints for F when expected solution was O(n*logn)?

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

    To trick someone that solution is not that easy as it is. Check the ashishgup’s last contest’s C question. No point there also of giving such low constraints even the solution just have linear time complexity.

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

    In this case, notice that the sum of $$$n$$$ over all test cases is unbounded, i.e. there can be test files where $$$t=500$$$ and $$$n=500$$$, for each $$$t$$$. Hence, you'll have to account for number of test cases while computing time complexity (in this case, the intended solution has complexity $$$O(t*n*logn)$$$ for each test 'file', which is reasonable for 2 seconds).

    I think it was set this way to increase the number of possible test cases on which the solution runs (expected answer was simply a "Yes/No", so you'll require more test cases to verify solution's correctness), while keeping the number of test files same.

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

https://mirror.codeforces.com/contest/1365/submission/82955051 In my code for question D I have used only one 2D array of size 51*51 though in the test case 8 it is showing MEmory limit exit . What is the reason?

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

Hi can someone please point out the mistake in https://mirror.codeforces.com/contest/1365/submission/82922169 I am getting WA on pt3 and can't understand why. Thank you.

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

In A,does it make a difference if I directly declare the array like int a[51][51] instead of declaring a constant int N and using it as a[N][N] ?

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

I have doubt in 1365A if mn is odd then Ashish win and if it is even than Vivak win then why sir Ashishgup use this if(mn % 2) cout << "Ashish" << endl; else cout << "Vivek" << endl; If I am thinking wrong please tall me, I am beginner in coding.

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

During Contest Time:

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

In E, the values can be upto 10^18, isnt the complexity actually (n^3).log(10^18), and that seems off the limit for 2 seconds. Where did i go wrong?

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

Why left shift of $$$a$$$ is same as right shift of $$$b$$$?

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

Can anyone help me with D? I think i've checked every possible cases.Please help me with what i am missing. https://mirror.codeforces.com/contest/1365/submission/83117062

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

83114496 can anyone tell me why am i getting a WA

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

Am I the only one who read E multiple times but still couldn't understand the problem?

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

Can someone tell me what is wrong with my approach for the E problem? I am first finding the largest value and then using 2 separate loops finding 2 other values such that the bitwise OR of all the three values is maximum.

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

Problem F was an absolute beauty. Kudos to the setters !! Can someone suggest problems similar to F involving some beautiful observations and then pretty straightforward implementation?

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

can anyone suggest some problems like this problem C .?? It will be helpfull for me .

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

In Problem B , Do we require to swap the type also after swapping the elements. If yes then the solution given will be wrong , else it will be Correct.

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

    According to the problem statement we do not swap the type too. meaning type is bound to the element (does not get exchanged when swapping).

    but lets say we have to swap the types even, even then if we have atleast one element with a different type. lets say elements a,b,c, types t1 and t2, position i,j,k.

    • a t1 i
    • b t2 j
    • c t1 k

    If we want to swap a and c of the same type. we can do the following

    swap(a,b) -> (a t2 j) and (b t1 i)

    swap(b,c) -> (b t1 k) and (c t1 i)

    swap(a,b) -> (b t2 j) and (a t1 k)

    so finally

    • a t1 k
    • b t2 j
    • c t1 i

    a and c have swapped positions while b remains same, in the end we swap b to its correct place and thus the element would be in sorted order.

    Conclusion — It doesn't matter if type's are swapped or not.

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

      It matters in this case eg: — (25 , 1 ) (45 , 1) (48, 0) (421 ,1) Here (num , type)

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

        i didn't get what you are trying to say.

        isn't it already sorted? 25 45 48 421.

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

          To add -

          lets consider (45, 1) (25,1) (421,1) (48, 0)

          You can swap the first two using 48,0 like i mentioned before in the above post. it wouldn't affect (48,0)

          so we have (25, 1) (45, 1) (421, 1) (48, 0). and now swap (48,421) leading to final sorted array

          (25, 1) (45, 1) (48, 1) (421, 0)

          Try it out on paper for various cases. it is as the editorial stated. since even if types are swapped it is possible to swap(a,c) of same types if we have b of different type. so the ans would be 'yes' if such a b exists. else we check is its already sorted or not.

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

Please help me understand problem E.. i didnt get what we have to do in the problem(not the logic) but what the question means

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

The best editorial I have seen ever. Tutorials and codes are easy to understand. Thank you all authors of this round.

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

Video Solution to D: https://youtu.be/R4aj3I7yxg0

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

Can anyone say why my submission of D is getting TLE.. submission link: https://mirror.codeforces.com/contest/1365/submission/83147673

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

    You do the bfs() for every G in the grid which are up to $$$m*n$$$, and the bfs twice iterates the grid which is again $$$m*n$$$, so it is $$$O(n^4)$$$.

    Since it is up to 100 testcases, it gets basically $$$O(n^5)$$$ which is to much.

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

Really liked the idea behind problem E.

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

Can anyone pls see my code of problem C why am i getting WA? i have done as the tutorial says. here is my submission link : https://mirror.codeforces.com/contest/1365/submission/83156137

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

Anyone plz tell me what is wrong in my code for D anyone please help me out. https://mirror.codeforces.com/contest/1365/submission/83125707

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

In Probem D Solve the Maze Tutorial, the following test case is not working..why?

1 2 2 .. .G

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

What is wrong in my code for problem E , anyone please help me. https://mirror.codeforces.com/contest/1365/submission/83165332

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

solution with explanation to problem D solution

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

I got Memory limit exceeded on test 8 on problem D. My code here. Please, someone, explain this. Thanks in advance.

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

In D my code getting TLE for test case — 16. I've tried several hours to find bug but can't.I will be glad a lot, If anyone make me understand why getting TLE.

my submission: 83191177

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

My solution for A was pretty straightforward — traverse the grid, if there is a 1 anywhere, mark that row and column as unusable. Next, traverse the grid again, if a column and row is usable, place advance to the next turn and mark this row and column unusable. I just kept on incrementing a count and printed the result on the basis of wether the count was odd or even.

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

char arr[N][N]; for (ll i = 1; i <= n; i++) { cin >> (arr[i] + 1); }

1365D — Solve The Maze How is this code working ? Someone please explain it ?

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

Wow, solution for G is actually really clean. Really nice problem.

One tip for the editorial, though: it is really confusing that the example for the optimal solution has $$$n=4$$$ AND $$$q=4$$$. If you had something like $$$n=6$$$ and $$$q=4$$$ using the same masking mechanism, it would've been much easier to follow. It took me a while to realize that there were $$$n$$$ different $$$q$$$-bit masks, not $$$q$$$ different $$$n$$$-bit masks. In hindsight this should've been more clear from the complexity, but it would've been nice to have been explicitly stated somewhere.

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

Problem G is insanely awesome!

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

If anyone need Div2 D detail explanation Here

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

My proof for DIV2 E

Let us define bar as the minimum no of elements that should have a bit,for that bit to be added to the result, for a size of k, bar is k-2.

First observation, when we add more elements,bar also increases(for k>=3), hence some of the bits may get excluded, if we add more elements, and this is the reason why the result may decrease if we add more elements.

Let's assume the optimal answer has k elements, now let's remove one element, the result will now decrease if and only if there was a bit i, which was added to the result before, but now cannot be added after removing, because it doesn't satisfy the bar,i.e earlier the bit i must have been set in exactly k-2 elements, and after removing it doesn't satisfy the bar, but the bar also decreases to k-3 for k>3(as the current number of elements is k-1) ,hence removing an element doesn't decrease the result for k>3.But for k<=3, bar doesn't decrease upon removing an element,it always stays as one.Hence the optimal answer can be achieved with k<=3.

Let us also prove that when k<3 adding an element will not decrease the result. When k=1 or k=2 bar is 1, it remains 1 for even k=3 hence adding an element will not increase the bar,hence will not decrease the result(refer "First oberservation").

Hence optimal answer can be achieved by choosing an appropriate subset of size 3