【补解体报告】topcoder 634 DIV 2

时间:2021-06-29 17:33:59

A:应该是道语文题,注意边界就好;

B:开始考虑的太复杂,没能够完全提取题目的思维。

但还是A了!我愚蠢的做法:二分答案加暴力枚举,

枚举的时候是完全模拟的,比如每次取得时候都是从大到小的去取,最后统计答案!

好吧!忽略这种SB做法,只是提供一种当你想不到的时候,一种暴力破解的思路!

看到的一种正解:我们每次可以取(N-1)个,而且不用加入答案中,

先上代码:

for (int i=0;i<s.size();i++)

sum+=s[i];

return max(0,sum-N*(m-1));很简短。

C 题:

构造题,想想也没想法,暴力是很好用的。

http://blog.csdn.net/codebattle/article/details/39612609  思路来源!

我们可以从后往前进行枚举当且遇到‘0’时进行修改,

然后去枚举该位置之后的数,每次假设当它为’0‘时,看是否满足。

复杂度大概是O(N^3);

具体看前面大神博客的代码