codeforces 699B Bomb

本文解析了Codeforces上一道关于矩阵中特殊点分布的问题,探讨了寻找特定点的方法,包括直接判断法和行列检查法,并分享了比赛心得及hack技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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别人需要很严谨的思路,是很不错的锻炼方法。

转载于:https://www.cnblogs.com/liuaohan/p/5687363.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值