#57618. 过山车
过山车
暂无测试数据。
蒜头君所在的旅行团中总共有 $N$ 个人,编号为 $1,2,3,\cdots,N$,其中有些人互为好朋友,他们一同来到了游乐场。游乐场的项目有很多,每个人愿意为了玩过山车付出 $v_i$ 元钱,其中 $v_i$ 可能是负数,代表反给钱才玩(因为过山车太刺激了,需要鼓励才敢玩儿)。
蒜头君想要选择一帮人来玩过山车,其中这些人之间两两互为朋友,并且愿意支付的总钱数最大。同时,蒜头君为了照顾到每一对好朋友,蒜头君希望他没有选择的那些人中两两都不是好朋友。
蒜头君想要知道,他有多少种选择方案。
两种不同的方案:当且仅当有至少一个人在两种方案中是否玩过山车的情况不同。
输入格式
第一行两个以空格隔开的正整数 $Case,N$,分别表示当前数据的测试点编号,和蒜头君所在旅行团的总人数。
第二行输入 $N$ 个以空格隔开的整数 $v_i$,第 $i$ 个数表示第 $i$ 个人愿意为玩过山车支付的钱数。
接下来 $N$ 行,第 $i$ 行的数据表示第 $i$ 个人的朋友关系。每行一开始一个非负整数 $P_i$,表示第 $i$ 个人有 $P_i$ 个好朋友,接下来 $P_i$ 个以空格隔开的正整数 $x_i$,表示第 $i$ 个人与第 $x_i$ 个人互为好朋友。
输出格式
- 如果 $Case$ 是偶数,你需要输出所有合法选择中,最大的总金额是多少。
- 如果 $Case$ 是奇数,你需要输出一共有多少种合法的选择方案。
数据范围
如果合法的话,蒜头君可以一个人都不选择,当然也可以让所有人都玩过山车。设 $M$ 为互为好朋友的人的对数,即 $M= \sum P_i$。
测试点编号 $Case$ | $N$ | $M$ | $v_i$ |
---|---|---|---|
$0$ | $\leq 10$ | $v_i = 1$ | |
$1$ | $\leq 10$ | ||
$2$ | $\leq 10$ | ||
$3$ | $\leq 10$ | ||
$4$ | $\leq 10$ | ||
$5$ | $\leq 10$ | ||
$6$ | $\leq 100$ | $\leq 100$ | $v_i=1$ |
$7$ | $\leq 1000$ | $\leq 1000$ | |
$8$ | $\leq 100$ | $\leq 1000$ | $v_i=1$ |
$9$ | $\leq 1000$ | $\leq 10^5$ | |
$10$ | $\leq 100$ | $v_i=1$ | |
$11$ | $\leq 1000$ | $\leq 10^5$ | |
$12$ | $\leq 1000$ | $\leq 10^5$ | |
$13$ | $\leq 1000$ | $\leq 10^5$ | |
$14$ | $\leq 1000$ | $\leq 10^5$ | |
$15$ | $\leq 10^5$ | $\leq 10^5$ | |
$16$ | $\leq 10^5$ | $\leq 10^5$ | $v_i=1$ |
$17$ | $\leq 10^5$ | $\leq 10^5$ | |
$18$ | $\leq 10^5$ | $\leq 10^5$ | |
$19$ | $\leq 10^5$ | $\leq 10^5$ |
无特殊说明的情况,$M\leq \frac{N\times (N-1)}{2},|v_i| \leq 1000$。
0 6
1 1 1 1 1 1
5 2 3 4 5 6
4 3 4 5 6
3 4 5 6
2 5 6
1 6
0
6
1 7
1 1 1 1 1 1 1
5 2 3 4 6 7
5 3 4 5 6 7
0
2 6 7
0
1 7
0
4