AtCoder Beginner Contest 176 E.Bomber
发布日期:2021-06-22 22:48:18
浏览次数:3
分类:技术文章
本文共 814 字,大约阅读时间需要 2 分钟。
AtCoder Beginner Contest 176 E.Bomber
比较简单的思维题,很明显,每一个点对行和列都有贡献值,我们只需找到最大的行贡献值和最大的列贡献值即可,这样成功了一大半,我们会发现行与列的交叉点如果有元素那么答案要减 1 1 1,那么我们可以记录所有等于最大贡献值的行号和所有最大贡献值的列号,判断是否存在交叉点即可 (很容易发现复杂度是 O ( n ) O(n) O(n) 的,而非 O ( n 2 ) O(n^2) O(n2)).这题惊人的 130 个点,还好一发过了😂,AC代码如下:#includeusing namespace std;typedef long long ll;const int N=3e5+5;int h,w,m,x,y,r[N],c[N];vector v1,v2;map ,int>mp;int main(){ cin>>h>>w>>m; while(m--){ cin>>x>>y; r[x]++,c[y]++; mp[{ x,y}]=1; } int mx1=0,mx2=0; for(int i=1;i<=h;i++) mx1=max(mx1,r[i]); for(int i=1;i<=h;i++) if(r[i]==mx1) v1.push_back(i); for(int i=1;i<=w;i++) mx2=max(mx2,c[i]); for(int i=1;i<=w;i++) if(c[i]==mx2) v2.push_back(i); for(auto i:v1) for(auto j:v2) if(!mp[{ i,j}]) { cout<
转载地址:https://zaizai.blog.csdn.net/article/details/108179181 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年03月23日 00时00分37秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
设计模式之单例模式
2019-04-26
JAVA的引用类型
2019-04-26
Android 解决Dialog导致软键盘无法隐藏的问题
2019-04-26
初学Flutter--Assets资源文件
2019-04-26
Unity3d学习笔记
2019-04-26
自定义View简单实现图片的手指移动和两指缩放
2019-04-26
Android自定义View模拟并实现3D柱状图
2019-04-26
Android Zxing二维码自定义界面(继承Capture类)
2019-04-26
Android 自定义View实现动画形式加载环形图
2019-04-26
Android 自定义View实现炮弹射击小游戏
2019-04-26
mysql设置不区分大小写
2019-04-26
linux下安装redis
2019-04-26
linux安装nginx(centos/Ubuntu/debian)
2019-04-26
linux下安装artemis
2019-04-26
mysql查询某属性值出现次数大于1
2019-04-26
mysql处理跨连接(dblink)
2019-04-26
mysql游标循环表与存储过程传参
2019-04-26
nginx配置文件里user只能是root,否则报403错误
2019-04-26
nginx 中location中root和alias的区别
2019-04-26
flowable集成后扫描不到jar包中mapping而报错
2019-04-26