P0530

Ural1695 Work for Robots

Ural1695 Work for Robots

有 NN 个人,他们之间有些是很好的朋友,有些不是。现在你想组织他们中的一部分(可以是全部,也可以一个都不叫)出来聚会,为了保证大家都玩得开心,规定参加聚会的人必须两两互为好朋友。你想知道一共有多少种组织方案。

输入格式

第一行包含一个整数 NN,以下为一个 N×NN\times N 的 0101 矩阵:第 ii 行第 jj 列为 0 表示 ii 和 jj 不是好朋友,为 1 表示 ii 和 jj 是好朋友。

输入保证第 ii 行第 jj 列与第 jj 行第 ii 列相同,且第 ii 行第 ii 列为 0。

输出格式

仅包含一个数,即满足要求的方案数。

样例输入

6
011100
101100
110100
111000
000001
000010

样例输出

19

样例解释

第 1∼41\sim 4 个人两两互为好朋友,他们的 24=162^4=16 个子集(含一个人都不叫的空方案)都是合法方案;此外第 55、66 个人互为好朋友,还能得到 {5}\{5\}、{6}\{6\}、{5,6}\{5,6\} 三种方案。共 16+3=1916+3=19 种。

数据范围

  • 对于 100%100\% 的数据,1≤N≤501\le N\le 50。

来源与许可

本题为 Ural 1695 试题「Work for Robots」,题面与测试数据整理自 BZOJ 2451。

样例 1

输入

6
011100
101100
110100
111000
000001
000010

输出

19