cf穿越火线官方下载求师傅,有意者请加群237...

    给定一个不规则的n行矩阵,每行分别有Ci个元素,其中Ci大于等于Ci+1,元素总个数为s,每个矩阵位置都有一个不同的值(从1到s),问能否给出一种方案,使得每行的元素从左到右递增,同一列的元素从上到下递增。

     因为题目没限制最少需要几步,构造出一个合法解,只要求不超过s步,因为元素个数只有s个,我们只需要把元素按照1,2,3,...s的顺序排列,移到对应位置即可,最多只需要s-1步,故始终可以构造出一个合法解。

//node记录值为val的点的当前位置 //排序时按1,2,..s的方式排序 //arr存储当前各位置存储的是什么数值 //c数组记录每行多少个元素 //x[i],y[i]数组分表表征值为i的点最后应该处于的位置 //分配每个值应处的位置 //记录某值当前的位置 //总元素个数,其实直接cnt就好 //如果该值已处于其应处的位置,则不操作 //i要移过去的位置当前所占的值为v //输出,此处输出过于复杂,其实一个队列即可,一次弹出4个元素

参考资料

 

随机推荐