First,we can consider that each $$$c_i$$$ is independant.So,we can calc the answer of each $$$c_i$$$.Then we calc their sums.
Then,obviously,we can discover $$$i$$$ is important for us to use it if there is $$$j$$$,$$$a_j\le a_i$$$ and $$$a_j-b_j\le a_i-b_i$$$。Because we can use $$$j$$$ to replace $$$i$$$ and we can save more objects.
Therefore,we can let $$$d_i=a_i-b_i$$$ and sort $$$(a_i,d_i)$$$ in the order of $$$a_i$$$.Then a useful $$$(a_i,d_i)$$$ means there isn't $$$j \lt i$$$,$$$d_j\le d_i$$$.So we can record $$$k=\min_{1\le j \lt i} d_j$$$,$$$d_i \lt k$$$。
Like this:
[submission:267715465]
Then,we use dp algorithm to solve it. Let $$$f_i$$$
is the answer that we have $$$i$$$ objects.
Obviously,$$$f_i=f_{i-d_j}+1$$$,$$$j$$$ is the maxnum $$$x$$$,$$$a_x\le i$$$.
Because $$$a_i\le 10^6$$$,we only calc for $$$i\le 10^6$$$.
For $$$i \gt \max a$$$,we can reduce it to $$$i-kd$$$ by use $$$max a$$$.$$$k=\lfloor\frac{i-\max a}{d}\rfloor+1$$$
If you have some spare time, may you please explain why this solution 267833774 using binary search gets TLE? I would think that the complexity is something like 1e6 * log2(1e6) which I think should pass
Is the upper_bound function in your code, not being called multiple times. If that is the case, then the worst-case complexity will be N*N*logN. I wrote a similar looking code and faced the same problem. I am not 100% sure about your code though.
i tried storing the increasing differnce of a[i] — b[i] (and consecutively increasing a[i]) in maps but am getting TLE.Can someone tell me why my time complexity is getting f-ed.Can someone also tell me the optimizations.my submission :((
I have a doubt in my submission for problem B where I iterate on the string b and whenever I match a character of it with "a" i increment the ptr j of b and then increase the variable cnt. Finally I print the answer as a.size + b.size -cnt . But it fails somewhere, can anyone help me give a case where my solution fails or the problem with my approach?267685947
Video editorials is a great addition to codeforces, I hope we normalize it. However text editorials is much important than video editorials so please don't stop doing it.
Well no its not . Suppose you get first strings abcde and the other as bfd , the actual answer of this will be 7 , it is basically the longest sequence of string a which is also subarray of string b.
Nice try! However, not all users on CodeForces are good at English, they may find it difficult to understand this video. May the authors upload text tutorial too?
The authors are gonna upload the text tutorials. Not uploading the text tutorials in favor of video editorials would be a retarded decision. Video tutorials are just like a bonus for whoever learns better by watching.
I Used the exact same idea. He got wrong answer and not TLE. Maybe he missed some boundary condition. This is my submission using same idea, if it helps 267852076
Your idea is incorrect because whenever you get that b[i] == a[j] you are assuming that taking that a[j] will give you the best answer that isn't necessarily true. For example, there is this test case:
I cant understand d, can someone explain the approach
First,we can consider that each $$$c_i$$$ is independant.So,we can calc the answer of each $$$c_i$$$.Then we calc their sums.
Then,obviously,we can discover $$$i$$$ is important for us to use it if there is $$$j$$$,$$$a_j\le a_i$$$ and $$$a_j-b_j\le a_i-b_i$$$。Because we can use $$$j$$$ to replace $$$i$$$ and we can save more objects.
Therefore,we can let $$$d_i=a_i-b_i$$$ and sort $$$(a_i,d_i)$$$ in the order of $$$a_i$$$.Then a useful $$$(a_i,d_i)$$$ means there isn't $$$j \lt i$$$,$$$d_j\le d_i$$$.So we can record $$$k=\min_{1\le j \lt i} d_j$$$,$$$d_i \lt k$$$。
Like this:
[submission:267715465]
Then,we use dp algorithm to solve it. Let $$$f_i$$$
is the answer that we have $$$i$$$ objects.Obviously,$$$f_i=f_{i-d_j}+1$$$,$$$j$$$ is the maxnum $$$x$$$,$$$a_x\le i$$$.
Because $$$a_i\le 10^6$$$,we only calc for $$$i\le 10^6$$$.
For $$$i \gt \max a$$$,we can reduce it to $$$i-kd$$$ by use $$$max a$$$.$$$k=\lfloor\frac{i-\max a}{d}\rfloor+1$$$
If you have some spare time, may you please explain why this solution 267833774 using binary search gets TLE? I would think that the complexity is something like 1e6 * log2(1e6) which I think should pass
Is the upper_bound function in your code, not being called multiple times. If that is the case, then the worst-case complexity will be N*N*logN. I wrote a similar looking code and faced the same problem. I am not 100% sure about your code though.
i tried storing the increasing differnce of a[i] — b[i] (and consecutively increasing a[i]) in maps but am getting TLE.Can someone tell me why my time complexity is getting f-ed.Can someone also tell me the optimizations.my submission :((
you can use unordered_map
but i need them differences sorted
since a[i]-b[i] <= 10^6, use an array instead is sufficient
i hoper they will add text tutorial too
I have a doubt in my submission for problem B where I iterate on the string b and whenever I match a character of it with "a" i increment the ptr j of b and then increase the variable cnt. Finally I print the answer as a.size + b.size -cnt . But it fails somewhere, can anyone help me give a case where my solution fails or the problem with my approach?267685947
1 dbcebd eddedad answer:10 since the first letter of b may not in a.
Video editorials is a great addition to codeforces, I hope we normalize it. However text editorials is much important than video editorials so please don't stop doing it.
I also think so. And I'm Chinese, I can't watch the videos on youtube.
can anyone tell me in problem B answer is n+m-longest common subsequence of both strings? is it correst
consider this a-> abc b->xaxbxcx here lcs is 3(abc) so according to you ans must be 3+7-3 but actual ans is 9 ie 3+7-1
thanks
why???
Answer is 7 for this test case
no. a is substring.keep this in mind while thinking about subsequence and not to distort continuity of a in making b.
Well no its not . Suppose you get first strings abcde and the other as bfd , the actual answer of this will be 7 , it is basically the longest sequence of string a which is also subarray of string b.
267826797 ques b) can anyone why its not giving right output or on which test case it fails
someone please hack this solution:- https://mirror.codeforces.com/contest/1989/submission/267711789
This solution also:- 267735052
UPD: This solution is actually correct.
Nice try! However, not all users on CodeForces are good at English, they may find it difficult to understand this video. May the authors upload text tutorial too?
The authors are gonna upload the text tutorials. Not uploading the text tutorials in favor of video editorials would be a retarded decision. Video tutorials are just like a bonus for whoever learns better by watching.
But Shayan got TLE in his submission 267715088, can we get updated tutorial for D?
upd: sorry, he got WA
I Used the exact same idea. He got wrong answer and not TLE. Maybe he missed some boundary condition. This is my submission using same idea, if it helps 267852076
I have corrected his code. This is his code with modifications https://mirror.codeforces.com/contest/1989/submission/267873425
Disappointing judging for the D problem, I had made an O(n) submission without including
ios_base::sync_with_stdio(false); cin.tie(nullptr);
and it didn't pass due to TLE, but after including this block and submitting an O(nlogn) code, it did.
I am assuming normally optimizations like these should not be a factor but due to the tight constraints, they resulted in TLE.
I hope they add the Text editorials soon
[deleted]
[deleted]
[deleted]
These video tutorials are unofficial, text editorials will be released soon by the contest authors.
Weak test cases in D. But anyway, good round indeed.
can someone tell me why i go wrong answer at test 2 267864473
Your idea is incorrect because whenever you get that b[i] == a[j] you are assuming that taking that a[j] will give you the best answer that isn't necessarily true. For example, there is this test case:
1 bba abb
This solution for problem D is getting a runtime error on the 9 th testcase. I can't seem to find the issue. Can you guys help!
https://mirror.codeforces.com/contest/1989/submission/267869614
In C++, comparator should return false if its arguments are equal.
Thank you so much, I didn't know about this before.
Nice problems
Solution of d provided in video got wrong answer on test case 21
In problem D, I am getting Runtime error on test 14. Not able to figure out the issue. Pls someone help. My submission: 269094484