zoukankan      html  css  js  c++  java
  • codeforces 699B Bomb

    http://www.codeforces.com/contest/699/problem/B

    在n*m的矩阵中有若干个特殊点,问能否找到一个点,使所有特殊点都和其在同一行或同一列。m,n<=1000

    很简单的题目,不过我当时就大意了,以为很简单没有想清楚就开始敲。敲完了一看,诶?不对!然后就gg了。

    看了看room里的写法,加上我的不外乎三种。

    第一种最gg的写法就是一堆if else。先看看是不是一个点都没有或者只有一个点;如果有多于一个点的话,先找一个点,然后对所有其他点,

    如果既不在同一行也不再同一列就不行,如果在同一行的话,在用其他点确定列 balabala。。

    这种写法普遍是最长的而且pass的人都花了很长时间,我也很佩服这种写法需要的严谨逻辑思维。不过显然是最倒霉的写法。

    第二种最标准的写法就是依次判断每一个点能否是目标点。判断方法又有两种。

    最简单的就是此列和此行的点数等于总点数。只要记录每一行吗,每一列的点数,在对这个点容斥一下就ok了。最短最快而且最不容易出错。

    另一种就是我的奇葩写法,只要除了这一行这一列别的地方没有点就行了。然后就用了前缀和和容斥查区间和。。比较麻烦。

    另外这一场我最后lock B题的选择没有错,有很多fst的。不过我一个都没有hack成。hack别人需要很严谨的思路,是很不错的锻炼方法。

  • 相关阅读:
    模板方法设计模式(未完待续)
    适配器模式
    g2o:一种图优化的C++框架
    U14.04 teamviewer install
    小教训
    卡2-SLAM
    Odometry的发布和发布odom到base_link的tf变换
    #pragma once
    友元
    Ubuntu 14.04 安装配置强大的星际译王(stardict)词典
  • 原文地址:https://www.cnblogs.com/liuaohan/p/5687363.html
Copyright © 2011-2022 走看看