### pengyule's blog

By pengyule, history, 14 months ago,

Hi, I am eager to know How to Find the Optimal Strategy When First See a Game Problem?

For example, CodeTON #2 Problem F Colouring Game, how do you know "start by taking RB/BR parts" is the smartest move, before you see the editorial?

• +31

By pengyule, history, 15 months ago,

When I do construction problems, I am always unable to find the entrance from which I can find the solution in the tutorial. It seems to me that the tutorial methods are just 无中生有(created out of thin air). How can I find them too?

• +8

By pengyule, history, 18 months ago,

Hello everyone! After endless debugging, I finally got AC on all the samples and submitted my code of F — Bear and Chemistry. However, it got Wrong Answer on test #63(which is not a hack, but a big case with n=300000,m=300000,q=100000!), and there are 77 testcases in all(which means I have passed a major part of them)!

I am pretty exhausted now. I wonder if any one of you experienced programmers can share with your approach in tackling this kind of thing. I would be most grateful!

Note: Don't get me wrong, I was not asking for you to debug my code.

• -11

By pengyule, 20 months ago,

Hi CF users. Me is needing help with CF1530F Bingo.

In fact, my solution is able to pass the first two samples, but WAs on the third where $n\ge 3$.

Yet I am not able to find a mistake in my method, which is narrated as follows:

• Consider two cases: there is a row all-1 and there isn't one.
• For the 1st case: brute force the mask of the all-1 rows, and calculate the Product possibility of all selected nodes.
• For the 2nd case: Consider diagonals as columns; so there are $n+2$ columns. Dfs the mask of the all-1 columns, so for each row i we are able to calculate the $Product$ of $p[i][j]$ for those $(i,j)$ that are undetermined; the product of all $(1-Product)$ should be the possibility of "at least a column is all-1 and no row is all-1".

This is my code. Will you help me?

• -29

By pengyule, history, 22 months ago,

As known, there is a "smart_indent" option in Sublime Text. However I have recently found this intent option un-smart when I wanted to change the style of indentation.

E.g., when I type a

for(int i=1;i<=n;i++)
cin>>a[i];


I'd prefer

for(int i=1;i<=n;i++)cin>>a[i];


But the "smart_indent" option would do this↓ when I change into my preference of the sentence:

for(int i=1;i<=n;i++)cin>>a[i];
int x;


I mean it would still insert a tab when I press "Enter". Worse yet, if I backspaced that tab and finish the second line and press enter again, the third line would backspace a tab automatically.

That's really annoying isn't it, so I switched off the smart_indent option, wishing it would no longer produce that tab.

However, things get worse. Nothing would happen when I enter the second line, but a tab would still be backspaced on the third line!

Confused, I came here for advice: What should I do?

• +19

By pengyule, history, 2 years ago,

Hi. The tutorial said that the total time complexity of the solution is $O(n^2)$, but there seems to be 2 layers of "for"s in each turn of "dfs", which seems to be $O(n^3)$. Though it must be less than $O(n^3)$, could anyone please analyse detailedly of the problem? THX!

• +6

By pengyule, history, 3 years ago,

My first solved-problem on Codeforces.

It's really an easy problem.

As we know, if you want to make the a and b as small as possible, they must only contain digits 0 and 1.

So, we have the thinking in the following:

1. if the digit of x[i] is 2: we try to make a[i] and b[i] both 1.
2. if the digit of x[i] is 0: we try to make a[i] and b[i] both 0.
3. if the digit of x[i] is 1: either a[i] or b[i] would be 1. We'll make a[i] 1 because it is no difference if we make b[i] 1.

However, if we make a[i] 1, the number a must be larger than b as a fact.

So, we would not want to make array a still bigger. So after we make a[i] 1, we have different thinking:

1. if the digit of x[i] is 2: we make a[i] 0 and b[i] 2.
2. if the digit of x[i] is 0: we make a[i] and b[i] both 0.
3. if the digit of x[i] is 1: we make a[i] 0 and b[i] 1.

That's all. We'll discover that after we make a[i] 1, a does not increase anymore, but b is increasing, however it will never be bigger than a.