?
题意:
给出n个人的id,有两个门,每个门有一个标号,我们记作a和b,现在我们要将n个人分成两组,进入两个门中,使得两部分人的标号的和(迭代的求,直至变成一位数,我们姑且叫做求“和”操作~)分别等于a和b,问有多少种分法。
【思路】:比赛的时候还是学弟递推的方程,当时是dp三维dp[i][j]k]:分别表示枚举到第i位,A门,B门的状态,但是一直没想到怎么进一步优化,卡在100n的复杂度了
赛后看了一下题解,(虽然高中生写的题解看了好像也没什么卵用~~)发现其实可以用二维数组解决啊,只要计算所有读入数组的和,和A,B门的比较一下,相等是时候进一步枚举j,否则直接判断和A,B门相等的情况,ans++,最后答案就是ans了,还是太弱了,加油吧!T_T!
代码:
?
#include
#include
#include
#include
#include
#include
#include
?
?