Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

# | User | Rating |
---|---|---|

1 | tourist | 3735 |

2 | MiFaFaOvO | 3681 |

3 | Um_nik | 3553 |

4 | Benq | 3376 |

5 | ecnerwala | 3295 |

6 | maroonrk | 3229 |

7 | TLE | 3223 |

8 | Radewoosh | 3216 |

9 | scott_wu | 3209 |

10 | Petr | 3205 |

# | User | Contrib. |
---|---|---|

1 | Errichto | 203 |

2 | antontrygubO_o | 191 |

3 | pikmike | 187 |

4 | Monogon | 185 |

5 | vovuh | 184 |

6 | Ashishgup | 182 |

7 | Um_nik | 180 |

8 | SecondThread | 173 |

9 | Radewoosh | 172 |

10 | McDic | 162 |

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Tutorial is loading...

Tutorial of Codeforces Round #377 (Div. 2)

↑

↓

Codeforces (c) Copyright 2010-2020 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: Aug/10/2020 07:55:24 (h2).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|

Auto comment: topic has been translated by dans (original revision, translated revision, compare)I think I used a simpler method for C, this is the observation:

Let M be the maximum of {b, d, s}; then the other 2 would be in the best case M — 1. So if b is the maximum, then (d >= b — 1 and s >= b — 1) always holds true.

This is the code: http://codeforces.com/contest/732/submission/21550209

"So if b is the maximum, then (d >= b — 1 and s >= b — 1)

alwaysholds true."In case {

b= 6,d= 3,s= 3} your statement is wrong. In that casebis maximum, butd<b- 1 ands<b- 1. Or did I miss something?No, I'm talking about the ideal situation.

Lets say b = 6, d = 3 and s = 3. Then Vasiliy has 6 breakfasts, and the minimum number of dinners and lunches he would have had is either 5 or 6. In no situation can it be lesser. We want to find the minimum, so our answer would be (5 — 3) + (5 — 3). (Where 5 is the minimum d we could have, and 3 is the d given to us in the problem statement)

Yeah, I used the same trick and it is quite easy than the one given in tutorial

For the case when

`b = 2, d = 3, s = 1`

how is the answer`1`

?Aren't the ones in the bracket the missed meals = 2 ? If you could help me out with where I am going wrong here .. Thanks!

EDIT:

Just understood, it could be represented as this too :

Meaning only the one in the bracket is the missed meal.

managed to do a-e but, i need to read tutorials on problem F , im still a bit confused, can someone explain , what is :

thanks for your help :)

just google it

can someone explain last line for f. with example? why orient (v,to) to (to,v)?

Just think about it, if you are pointing from v→to, you are leaving the largest cycle pointing outwards.

ok understood it. That really made the whole question. Thanks bro.

Hi, I'm not understanding why my submission is getting TLE for Div2 F. can anyone please check it? Here's my submission, 21830666 I have implemented it exactly as given in the tutorial.

In Problem B, test-10:

Obviously my answer is better?

"

Write a program that will find the minumum number of additional walks"I am pretty sure it is not obvious that 4 < 3.

Oh no, I am very sorry. I mixed up

`Answer`

and`Output`

.Div2D Exams

Consider the following test case

The following AC submission gives the answer as 9. I would like to know how is the answer 9 correct. Since subject 3 requires 4 days of preparation, which clearly isn't possible, shouldn't the answer be -1 ?

It was mentioned that the test cases are flawed and some wrong solutions managed to get an AC.

Why is complexity for Problem D O(mlogn)? For each guess, we want to take the subject at the latest possible day right? So we will need to perform a linear scan on the exam days so that we can find the latest day for each subject. So that should be O(nlogn) right? Is anyone able to confirm this?

Did you find an answer for this?

can someone provide an explanation on why is the mentioned strategy of orienting edges in problem F optimal? i.e. why does it allow us to traverse from any vertex to any other vertex in an 'edge' connected component?

Test cases for D are very trivial. All of them pass through wrong solution also.

Can anyone provide proof of correctness for problem F ? I am not sure whether the solution in tutorial is correct

Can someone please explain the editorial of Problem F? I can't get why the answer is the largest component!

For example take the following graph:

We have two bridges (6,7),(10,11). Now first without considering bridges we will direct other edges,and they will be obviously completely connected as there will be a cycle(because all the bridges already have been removed)

Now come to bridges, if we direct 10--->11 then ri for (i=11,12,13) will be equal to 3 else if we direct 10<---11 then ri for (i=11,12,13) will be equal to 7

So we direct edge from smaller to larger ,to get 7 over 3 Similarly we will do this with 6<---7 else (7--->6) ri for (i=7,8,9,10) will be 4 (focusing on minimum ri)

So largest component can reach only to the vertices which come in its component after removing all bridges.If we take direct edge from higher component to lower component (higher and lower is with respect to number of vertices in component) ,then minimum can't be maximize,therefore answer will be largest component.

Happy Coding :)

That was really a great explanation. Thanks!

In problem B, why the count of the new walk is 2 and not 1?

Problem D please someone Add this Test Case if possible

My Code Output

12

Actual Output

17

Still it got Accepted

I know it's easier to solve problem B with greedy but still out of my enthusiasm, I wish to do it using DP so please can someone suggest any recursive DP expression for this Problem B.Thanks for your valuable time!!