Codeforces Round #163 (Div. 2)(完全)

这场比赛大概是我做CF以来最难的一场div2了

D题搞了很久,还是没搞出来,C题题目没看仔细,E题做过类似的,但显然我这种div2选手很少在比赛搞E题,不过现在已经渐渐消除了对后面两题的恐惧、


C.Below the Diagonal

给你一个0 1 方阵,题目说有n-1个1,然后一次操作可以交换两行或者两列,然后要求输出一种交换的方案使得所有的1都在主对角线以下。

可以暴力两个循环先将矩阵调节为从左往右每一列的1的数量非递增,然后接下来从最后一列开始往前处理,枚举这一列主对角线以上(包括对角线)的每一个1,将它们依次填入主对角线下面的每一个空位上(交换两行),第i列的1的数量保证不会超过n-i , 总数就是n-1,而且从左往右递减,然后想想就知道了。这样子继续交换下去,知道第一列,注意,已经交换过的行不能再换了,因为有可能将已经换到对角线下面的1换回到对角线上面,最坏情况有n-1列被标记掉,所以不用担心交换不下来。

code



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值