将近2个月没做TopCoder了,似乎官方都不给我发比赛提醒邮件了。。。这次的TopCoder好难,500分的题目最后都没做出来。。。
Div 2 250pt:
题意是给你一个可用天数total和一个去每个城市花费时间的数组d,求最多可以去多少个城市。
非常简单的一道题。容易忽略的地方有两个:一个是天数正好能被用完的情况,一个是数组越界。
Div 2 500 / Div 1 250:
题意是ICPC的比赛会给解决问题的队伍插气球。要求不同的题目的气球颜色必须不同,想吐题目的气球的尺寸必须相同。给你一个数组balloonCount代表你买的每种气球的个数,字符串balloonSize表示每种气球的大小,数组maxAccepted表示每个题目最多会有多少队伍能解决。问最少需要对多少气球改变颜色。
一开始一点想法都没有,后来看到maxAccepted的长度最多才15,因此想到可以2^15进行枚举哪道题用什么大小的气球。然而之后我就不知道该如何分配气球使得总的改变颜色次数最少。。。最后看了别人的代码才大概有了一点想法。。
首先把题目化简:假如没有大小限制,如何分配气球给不同的题目使得改变颜色最少?
这时,如果题目的数量比气球多,肯定无法完成分配。而如果气球多,则把