##A. 数 容易发现答案是 \(f_m=\sum \limits_{i=0}^n a_i[x^i](1-x)^m(1+x)^{n-m}\) 然后就有一个显然的 \(O(n^2)\) 做法,并不会优化。 一个优化的方法是,考虑 \((1-x)\)\((1+x)\) 相加为 $2$。 所以可以将 \((1-x)\) 转化为 $2-(1+x)$ 的形式。 这样就可以用二项式定理展开 \((2-(1+x))^m\) 这个东西。 然后发现其中一个项只与 \(m-i\) 有关,并且可以通过卷积得到。 所以卷积两次就可以得到所有答案。 另一个优化方法是用组合含义: 考虑设 \(a_i=\sum \limits_{j=0}^i b_j \binom{i}{j}\)。 也就是说我们将选 \(i\) 个元素转化计数每个子集统计答案。 这样就可以将原来的集合分成四部分: 造成 \(-1\) 贡献和造成 \(+1\) 贡献,在子集中和不在子集中。 然后可以发现其中的大部分项都因为 \((1-1)^k\) 被弄没了,所以也可以两次卷积,分别求出 \(b\) 数组和最终答案。   ##B. 路 首先是第一问。 对于 \(k>0\) 的子任务,容易发现一定恰好有一条边有两个点。 推广一下是这样的,一定存在一条边 \((x,y)\),上面的顶点序列有连续的 \(x,y\)。 对于任意一条最短的路径,一定仅存在一次上述即边上顶点序列包含两个顶点的情况。 所以可以枚举这种情况在哪条边的哪个位置出现,通过边上的序列不断拓展点上的序列即可。 称极短的这样的路径为 \(B\) 路径,发现这样的 \(B\) 路径两端可以分别加上 \(A\) 路径和 \(C\) 路径,大概表现为边上顶点序列比点上顶点序列少一个点。 同理可以找出所有的 \(A,C\) 路径,然后可以发现任意一条 \(AAAABCCCC空AAABCCC空B\) 的路径都是合法的,所以用 \(dp\) 合并一下即可。   ##C. 图 有这样一个做法,首先构造出一棵生成树出来,考虑每个点都向根流一个单位的流量。 然后只需要统计出环的流量减去入环的流量,得到的就是环的大小。 因为题目是平面图,所以只要在每个点上极角排序就可以通过确定区间得出了。 然而好像如果任意构造生成树,会因为父亲恰好在两条边之间,但是在环之外错掉。 然而好像如果通过 \(dfs\) 建这棵树,因为不存在横叉边,就不会存在这样的情况。 对于如何判断给出的环顺时针还是逆时针。 其实只需要通过叉乘求一下面积即可得出。