这道题做的有点狼狈,效率不高,差一点就TLE的AC了。看status里的,AC的时间大多数都是0ms的。肯定有一个更有效率的算法的。下面说下我的狼狈算法。
出处:http://acm.jlu.edu.cn/joj/showproblem.php?pid=1223
问题描述:
求每个party的权值。
第i个party的权值定义:除去第i个party的投票。其他party的分成二组,设其二组的票数分别为s1,s2。
则s1<=s2,且有s1+party的票数>=s2的那些组合个数,为其权值。
输入:
case个数。
每个case,输入n,再输入n个party的票数。
输出:
对应于每个case中,第个party的权值。
思路:
由上面的式子,求出s1的范围,再对s1对数组里查找能不能组成它的组合。
这里又用到了回溯,时间效率超低。
现在还想不出其他方法。
代码: