题目描述
又到了辅导学弟学妹们上机的时候了,学长们都非常踊跃报名。那么问题来了,如何安排上机呢?
现在将问题简化一下:一共需要n节课(编号从1到n)的辅导上机,正好有n位学长(编号从1到n)报名,用二维矩阵A表示学长们的情况,A[i][j]表示第i个学长第第j节课是否有时间(1表示有时间,0表示忙)。为了进一步简化问题,假设一定存在将学长们按一定顺序排列后,前一位学长的合适时间集合包含后一位学长(也就是后一位学长哪节课有时间,那么前一位学长一定有时间,反过来就不一定了)。每节课都需要有学长辅导,同时为了满足大家辅导上机的热情,规定每个人恰好参与一次。现在问聪明的你能找到这样的方案吗?(能输出“Yes”,不行输出“No”)
输入
包含多组数据(数据组数小于200),每组数据第一行输入n(1<=n<=20),表示有n节课需要辅导和n位学长报名,接下来是n行n列矩阵表示学长们的情况(0表示忙,1表示有时间)。数据保证一定满足题目假设。
输出
每组数据输出一行,能找到方案输出“Yes”, 不能找到这样的方案输出“No”。
样例输入
5
0 0 0 0 1
0 1 1 1 1
0 1 1 1 1
1 1 1 1 1
0 0 0 0 1
3
1 1 1
1 1 0
0 1
又到了辅导学弟学妹们上机的时候了,学长们都非常踊跃报名。那么问题来了,如何安排上机呢?
现在将问题简化一下:一共需要n节课(编号从1到n)的辅导上机,正好有n位学长(编号从1到n)报名,用二维矩阵A表示学长们的情况,A[i][j]表示第i个学长第第j节课是否有时间(1表示有时间,0表示忙)。为了进一步简化问题,假设一定存在将学长们按一定顺序排列后,前一位学长的合适时间集合包含后一位学长(也就是后一位学长哪节课有时间,那么前一位学长一定有时间,反过来就不一定了)。每节课都需要有学长辅导,同时为了满足大家辅导上机的热情,规定每个人恰好参与一次。现在问聪明的你能找到这样的方案吗?(能输出“Yes”,不行输出“No”)
输入
包含多组数据(数据组数小于200),每组数据第一行输入n(1<=n<=20),表示有n节课需要辅导和n位学长报名,接下来是n行n列矩阵表示学长们的情况(0表示忙,1表示有时间)。数据保证一定满足题目假设。
输出
每组数据输出一行,能找到方案输出“Yes”, 不能找到这样的方案输出“No”。
样例输入
5
0 0 0 0 1
0 1 1 1 1
0 1 1 1 1
1 1 1 1 1
0 0 0 0 1
3
1 1 1
1 1 0
0 1