LINK:Multiplication 4
害怕别人不知道我有多菜 那就上张图:
赛时 太慌了 (急着AK
题目不难却暴露我的本性 根本不思考无脑写 wa了还一直停不下来的debug 至少被我发现了10个漏洞 且最后还存在bug.
放弃治疗然后走人了。啊啊啊 下次再不认真思考我把番给戒了.
原本的想法是 有负数的时候很难办 先把0分开 然后负数两两组合 正数也是如此然后开始贪心。
最后特判k为1的情况 这个情况接一堆分类讨论 但是当时少讨论一种情况 代码过于繁杂 导致GG.
今天花了几分钟想了一种比较简单的做法:每个数字取绝对值直接从大到小选数字。
分类讨论最后得到的数字是否是负值 正值显然ok 为0也特判掉。
那么如果为负值 想办法替换成正值 无非是去掉一个正值加上一个负值 去掉一个负值加上一个正值两种情况。两种情况比max即可。
证明这样是最优的:显然前k-2个数字是最大的且为正数 这是最优的 最后两个数字要么放两个正数 其中第一种情况是这个地方的最优 放两个负数 这两个也同样最优。
所以这样做一下就行了 比较好写细节不多。