每天一把CF : 2020-10-17
其实今天有想过现暂停一段时间的,因为报了个大数据比赛,但是自己根本没学过…那是下学期乃至下下学期的事情,不过报都报了,就得顶,找了尚学堂的教学资料开始看了起来,还有半个月就比赛,任重而道远啊.
说实话,自己感觉自己并不擅长算法,当然这也跟我才训练算法3个月有关,而且高中文科生,真的吃很多亏,不过话不能说太早,因为真正的无能为力是在尝尽所有办法后的结论,而不是自己一开始就给自己下的定论。所以,大家还是顶起来啊。奥利给。
太晚了,这道题今晚只有思路,明天起来补。
明天还要参加CPC选拔,虽然我就是走个过场,但是我好烦呐,我宝贵的时间。
感谢你看了我那么多的发的牢骚,emmmm.
题目
原题链接:https://codeforces.com/problemset/problem/1417/B
思路
题目大意:给定一个包含n个非负整数的数组a和一个霉运数t,定义f(x)为数组x中和为t的整数对(i!=j)的对数,现将数组a分割成两个数组c和d(可空),求使f©+f(d)最小的切割方案。
思路:
暂时思路是将能够组成t的数对放进不同的数组中。明天起来实现。奥利给
实现了一下,算法复杂度是n^2,明显必炸无疑,emmm。
考虑更加简单的思路,所以小于t/2的数必定无法组成霉运数,同理,所有大于t/2的数也同样无法组成霉运数,对于a[i]==t/2 两个数组一个个放就是了。
然后考虑一下t是奇数偶数的情况下的细小区别。完。
小声哔哔:wtm没有写输出答案的语句交了两次都错了还在那找错,hhhhh,卒。
代码实现
#include <iostream>