#J18P3. 决斗

    ID: 7351 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划区间 DPJ18实践J18 实践-3 决斗区间dp

决斗

题目描述

Michel 最近迷上了买彩票。某赌场就一轮决斗的结果开设了赌局。在进行了详尽的市场调查后,Michel 拿到了任意两个选手对决后的胜负情况。可以假定正式比赛中对决的结果也与此相同。

决斗的规则如下:开始时,nn 名选手围成一个圆圈,每名选手编号为 1n1 \sim n。第 11 名选手右边是第 22 名选手,第 22 名选手右边是第 33 名选手,依此类推,第 nn 名选手右边是第 11 名选手。

每一回合,系统随机抽取一名选手,令其与右边的选手进行决斗。战败的选手退出圆圈。例如,若第 22 名选手战败,则第 11 名选手右边将直接变成第 33 名选手。对决将一直进行,直到只剩下一名选手为止。

现在,请你帮助 Michel 判断:哪些选手有可能成为最终的胜者(即存在某种对决顺序,使得该选手最终留在场上)。

输入格式

第一行包含一个整数 nn,表示选手的人数。

接下来 nn 行,每行包含 nn 个整数,描述任意两名选手之间的对决结果。第 i+1i+1 行第 jj 列的整数表示第 ii 名选手与第 jj 名选手对决的结果:为 00 表示第 ii 名选手失败,为 11 表示第 ii 名选手获胜。输入数据保证 i=ji=j 时该值为 00,且对任意 iji \neq j,该矩阵与转置位置的值不会同时为 11(即胜负关系是确定的)。

输出格式

第一行输出一个整数 kk,表示有可能获胜的选手数量。

接下来 kk 行,每行一个整数,按编号升序输出可能获胜的选手编号。

样例

2
0 0
1 0
1
2

样例解释

共有 22 名选手。第 11 名选手与第 22 名选手对决时,第 11 名选手必定失败,第 22 名选手必定获胜。无论随机抽取的顺序如何,第 11 名选手都会在第一场或最后一场被淘汰,因此只有第 22 名选手可能获胜。故可能获胜的选手数量为 11,即编号 22

数据范围

  • 1n5001 \le n \le 500
  • 胜负矩阵中的整数只可能为 0011