CF51E Pentagon
题目描述
根据 Berland 总统发布的最新命令,该国的每座城市都必须拥有自己的国防部大楼(他们自己的五角大楼)。大都市 Berbourg 也不例外。这座城市共有 $n$ 个路口,其中一些成对通过双向公路连接。全市共有 $m$ 条公路,任意一对路口之间最多只有一条公路。
目前正在讨论为 Berbourg 选择五角大楼的地址。已经决定,五角大楼应覆盖由公路连接成环的五个不同路口。为了建造五角大楼,将沿着这些公路建造特殊的围墙(带高压铁丝网等)。因此,在该城市中建造五角大楼的可能方式数就等于由路口和公路组成的不同长度为 5 的环的数量。
你的任务是输出在 Berbourg 建造五角大楼的方案数。只接受高效的解法。请务必在最大测试数据上测试你的代码。
输入格式
第一行包含两个整数 $n$ 和 $m$($1 \leq n \leq 700; 0 \leq m \leq \frac{n \cdot (n-1)}{2}$),$n$ 表示路口数,$m$ 表示公路数。接下来 $m$ 行,每行描述一条公路,每条公路由两个整数 $a_{i}, b_{i}$($1 \leq a_{i}, b_{i} \leq n; a_{i} \neq b_{i}$)表示,$a_{i}$ 和 $b_{i}$ 之间有一条双向公路。路口编号从 1 到 $n$。不保证任意两个路口之间通过公路都能到达。
输出格式
输出一个整数,表示所需的方案数。请不要在 C++ 中使用 %lld 格式符输入输出 64 位整数。推荐使用 cout(也可以用 %I64d)。
说明/提示
由 ChatGPT 5 翻译