最新要闻
- 特斯拉降价后:门店半小时售10台 老车主直呼被损失4万
- 焦点速读:特斯拉降价引海外热议:这是《孙子兵法》!欲消灭传统车企
- 你拿多少?报告称2022年终奖人均2.19万元 一线城市近3万元
- 环球今日讯!果香浓郁!徐福记DODO综合果味棒棒糖 60支19.9元
- 【世界速看料】保护隐私!微信键盘iOS 1.0.2版更新:体积膨胀到237MB
- 全球观天下!联想GeekPro 2023主机首销6199元起:13代i5+RTX 3060
- 【天天快播报】春节前最后一次成品油调价来了!或迎2023年首次降价
- 关注:畅想未来:2023年手机还能怎样进化?
- 对话郑刚:与罗永浩分歧关键不是商业利益
- 最野性的福特SUV!探险者Timberline亮相:超帅黑橙配色
- 33.58万起!比亚迪腾势D9成交付最快破万高端MPV
- 天天通讯!《魔兽世界》国服关闭倒计时!网易向玩家发短信安利《逆水寒》
- 从超前点映到480P投屏 视频平台赚钱只能靠“割韭菜”?
- 环球快消息!程序猿创造的AI虚拟漂亮老婆 被真女友强制“安乐死”了
- 天天热议:液金+水冷压住RTX 40系显卡:机械革命晒新旷世笔记本散热系统
- 特斯拉海外大降价!老外车主气炸请求维权:免费送FSD
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
实时:AcWing257 关押罪犯
(资料图)
题目大意
\(\qquad\)给定一张正权无向图
,定义冲突值为一个集合内权值最大的边
,将一张图上的点,分成两部分,不同部分的点在原图上的边作废,求最小化最大
冲突值,并输出。
解题思路
1. 二分答案 + 二分图判定
\(\qquad\)由于要求最小化最大冲突值
,遇到最大值最小化的问题,经验上可以采用二分答案
求解,具体步骤就是二分出这个最大冲突值,要使一个冲突值合法,应该有如下性质;
\(\qquad\)所以我们的问题就可以转化成:在原图的基础上将所有权值大于 \(mid\) 的点中间连边,建新图,然后判定新图是否为二分图
即可,如果是二分图,代表满足 \(check\) 条件。
\(\qquad\)然后我们要求的是最小化,所以应该采用这个二分模板
while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1;}
采用的是染色法判定二分图,模板如下
bool dfs(int cur, int c, int mid) { clr[cur] = c; for (int i = h[cur]; ~i; i = ne[i]) { int j = e[i]; if (w[i] <= mid) continue ; if (clr[j] && clr[j] == c) return false; if (!clr[j] && !dfs(j, 3 - c, mid)) return false; } return true ;}
完整AC代码
#include #include #include using namespace std;const int N = 2e6 + 10;int h[N], e[N], ne[N], w[N], idx;int clr[N], u, v, c, n, m;void add(int a, int b, int c) { e[idx] = b, ne[idx] = h[a], w[idx] = c, h[a] = idx ++ ;}bool dfs(int cur, int c, int mid) { clr[cur] = c; for (int i = h[cur]; ~i; i = ne[i]) { int j = e[i]; if (w[i] <= mid) continue ; if (clr[j] && clr[j] == c) return false; if (!clr[j] && !dfs(j, 3 - c, mid)) return false; } return true ;}bool check(int mid) { memset(clr, 0, sizeof clr); for (int i = 1; i <= n; i ++ ) if (!clr[i]) if (!dfs(i, 1, mid)) return false; return true ;}int main() { scanf("%d%d", &n, &m); memset(h, -1, sizeof h); while (m -- ) { scanf("%d%d%d", &u, &v, &c); add(u, v, c), add(v, u, c); } int l = 0, r = 1e9; while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } printf("%d\n", r); return 0;}
扩展域并查集
\(\qquad\)还是二分答案,但是我们可以换一种思路来看,对于一条权值大于 \(mid\) 的边上的两个点\(u, v\) 我们是期望在不同的部分(监狱)的,那么这种关系显然是具有传递性的,也就是(我们称呼这样的\(u,v\)为敌人)敌人的敌人是朋友
,所以我们可以想到有并查集
来维护,遇到上述边\(u,v\),如果\(u,v\)在同一集合内,逻辑冲突,\(check\)不成立,否则将\(u\)的敌人和\(v\)合并,\(v\)的敌人和\(u\)合并。
\(\qquad\)为了方便扫描我们用一个结构体数组存储图,和最小生成树一样。
完整AC代码
#include using namespace std;const int N = 2e5 + 10;int n, m, p[N << 1];struct Edge { int u, v, w;} edge[1000010];int find(int x) { if (x == p[x]) return x; return p[x] = find(p[x]);}bool check(int mid) { for (int i = 1; i <= N << 1; i ++ ) p[i] = i; for (int i = 1; i <= m; i ++ ) { if (edge[i].w > mid) { int pa = find(edge[i].u), pb = find(edge[i].v); if (pa == pb) return false; p[pa] = find(edge[i].v + n); p[pb] = find(edge[i].u + n); } } return true ;}int main() { scanf("%d%d", &n, &m); for (int i = 1; i <= m; i ++ ) { int u, v, w; scanf("%d%d%d", &u, &v, &w); edge[i] = {u, v, w}; } int l = 0, r = 1e9; while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } printf("%d\n", r); return 0;}
带边权并查集
\(\qquad\)维护一下边权,把所有符合性质的点加到同一个集合里面,维护一个边权,边权和模\(2\)得到\(0\)代表在同一个集合里面,\(check\)不成立,由于\(xor\)是不进位的二进制加法,所以用异或运算代替加法和模。判断的时候对于同一个集合里面的元素,如果边权和\(\% 2=0\)那么证明两个这样的罪犯在一个监狱,不可以,返回\(false\),如果一路下来没错误,返回\(true\)
完整AC代码
#include #include using namespace std;const int N = 2e5 + 10;int n, m, p[N], d[N];struct Edge { int u, v, w;} edge[1000100];int find(int x) { if (x == p[x]) return x; int root = find(p[x]); d[x] ^= d[p[x]], p[x] = root; return p[x];}bool check(int mid) { memset(d, 0, sizeof d); for (int i = 1; i <= n; i ++ ) p[i] = i; for (int i = 1; i <= m; i ++ ) { if (edge[i].w > mid) { int x = edge[i].u, y = edge[i].v; int px = find(x), py = find(y); if (px == py) if (d[x] ^ d[y] == 0) return false; if (px != py) d[px] = d[x] ^ d[y] ^ 1, p[px] = py; } } return true ;}int main() { scanf("%d%d", &n, &m); for (int i = 1; i <= m; i ++ ) { int u, v, w; scanf("%d%d%d", &u, &v, &w); edge[i] = {u, v, w}; } int l = 0, r = 1e9; while (l < r) { int mid = l + r >> 1; if (check(mid)) r = mid; else l = mid + 1; } printf("%d\n", r); return 0;}
算法对比
时间:带边权\(<\)扩展域\(<\)二分图\(143ms<464ms<620ms\)代码复杂度:扩展域\(<\)带边权\(<\)二分图
思维复杂度:扩展域\(<\)二分图\(<\)带边权
实时:AcWing257 关押罪犯
当前关注:使用vscode调试PHP底层C源码
特斯拉降价后:门店半小时售10台 老车主直呼被损失4万
焦点速读:特斯拉降价引海外热议:这是《孙子兵法》!欲消灭传统车企
你拿多少?报告称2022年终奖人均2.19万元 一线城市近3万元
环球今日讯!果香浓郁!徐福记DODO综合果味棒棒糖 60支19.9元
【世界速看料】保护隐私!微信键盘iOS 1.0.2版更新:体积膨胀到237MB
全球观天下!联想GeekPro 2023主机首销6199元起:13代i5+RTX 3060
【天天快播报】春节前最后一次成品油调价来了!或迎2023年首次降价
关注:畅想未来:2023年手机还能怎样进化?
对话郑刚:与罗永浩分歧关键不是商业利益
最野性的福特SUV!探险者Timberline亮相:超帅黑橙配色
33.58万起!比亚迪腾势D9成交付最快破万高端MPV
天天通讯!《魔兽世界》国服关闭倒计时!网易向玩家发短信安利《逆水寒》
从超前点映到480P投屏 视频平台赚钱只能靠“割韭菜”?
环球快消息!程序猿创造的AI虚拟漂亮老婆 被真女友强制“安乐死”了
天天热议:液金+水冷压住RTX 40系显卡:机械革命晒新旷世笔记本散热系统
特斯拉海外大降价!老外车主气炸请求维权:免费送FSD
环球关注:4K缩水到480p 爱奇艺称“有权变更内容” 律师回应称肯定违约了
环球讯息:《流浪地球2》发行通知公开:片长173分钟对标《阿凡达2》
时讯:网友铁了心要等一加11 Pro 李杰:没有11 Pro、11 Ultra
遭黑客广泛利用:微软无奈计划淘汰诊断工具MSDT
你涨工资没?全国招聘平均月薪增幅最高城市 最低1.2万、还在加薪
世界微速讯:曾两个月涨粉上千万!张同学回应热度消退:可以坦然面对
视点!小米6钉子户换上Redmi K50至尊版:速度就是快
马斯克突然调整Twitter API:第三方客户端全灭
不再是小仪表盘 新款比亚迪秦PLUS DM-i曝光:续航猛增至1310km
热点聚焦:燃油版“宏光MINIEV”!三菱Delica Mini首发:配0.66L发动机
【环球快播报】“蓝兔”邮票黄永玉有多潇洒?北京第一辆私家车拥有者 93岁开法拉利飙车
每日信息:三星将长焦发挥到极致!曝Galaxy S24 Ultra支持150倍变焦
快资讯:iPhone 14兔年限量保护套售价398元贵吗?部分型号卖断货
TP-LINK发布新款AX3000双频千兆Wi-Fi 6光口AP:支持DC、PoE双供电
世界微速讯:长白山人参旗舰店:全须生晒参4盒99元狂促(300元大额券)
播报:联想拯救者刃7000K 2023今日开售:i5-13400F+RTX3060 首发7199元
焦点热议:豆瓣9.5高分国漫!《中国奇谭》第二季已在筹备:要打造IP宇宙
最新快讯!二十六位朗读主播!讯飞有声书图赏
当前热讯:“1888万彩礼”事件作者承认编故事 知乎:永久封禁账号
热资讯!奇葩公司发大鹅当年货 员工开心又无奈:放公司很吵
天天微速讯:故意排放能怎样?日本决定核废水2023春夏排入海 多国网友愤怒
2022年动力电池装车量排名:“宁迪”双王吃下超7成市场
每日关注!73岁保安徒手接住4楼坠落女子获奖 网友:见义勇为、值得点赞
HarmonyOS智能座舱是怎样炼成的?华为官方揭秘软件开发标准
全球讯息:大手笔!蔚来官宣:春节高速路换电全免费、不限次数
今日最新!(六)elasticsearch 源码之选主流程分析
环球今日讯!java中关于继承,多态及方法调用的底层细节
如何构建基于 DDD 领域驱动的微服务?
世界新资讯:火山引擎 DataTester:一次 A/B 测试,帮助产品分享率提升超 20%
珠江的源头在哪里?珠江的长度是多少千米?
当前热文:被称作“电费刺客” 商家:踢脚线取暖器耗电量可达空调3倍
蜀国的皇帝有哪些?蜀国的皇帝列表排名
当前视点!明晚8点开播!央视网络春晚第二波阵容官宣:王心凌、撒贝宁等加盟
魔兽国服关闭当天 老外喜迎新版本升级 网友:暴雪杀人诛心
豆瓣9.2分神作!《新·福音战士剧场版:终》终于官宣引进
天天时讯:2023年电脑城奸商依然猖狂:3千元笔记本卖5千 出库不能退
为黛西小姐开车故事背景是什么?为黛西小姐开车故事梗概是什么?
打电动是什么意思?打电动是什么游戏?
特百惠是哪国的牌子?特百惠卖什么产品?
电视机顶盒怎么连接电视机?电视机顶盒怎么破解?
怎么给冰箱加氟?冰箱加氟一般需要多少钱?
excel怎么转化为在线表格?excel怎么转化为PDF?
lol怎么亮徽章?lol徽章有什么用?
斗鱼鱼丸多少钱一个?斗鱼鱼丸怎么兑换人民币?
用SGDK开发世嘉MD游戏:入门篇
快资讯:FAA飞航系统已有30年历史 老迈程度堪比N64
环球百事通!90后女孩神还原蔡明春晚40年造型火了 本尊回应5个字
焦点观察:果粉愿望要实现!iPhone 16 Pro直接256GB存储起步
环球快消息!12月轿车销量排名出炉:传统“豪强”反攻、比亚迪也挡不住?
世界观点:超大范围降雪来袭:全国多地上百条高速局部路段公路封闭
最新:误将磁盘格式化的应急响应
头条:【Python爬虫项目实战】Python爬虫豆瓣Top250电影短评数据保存本地
2023最新nacos的windows 10安装(保姆级)
滚动:我国让科幻片成了现实!全球首艘智能型无人系统科考母船交付使用
世界热点评!6英寸墨水屏带来全新听书体验!讯飞有声书评测:内置26种朗读主播 方言英语都能读
全球观速讯丨微软经典Media Player获新生:新版本面向全部Win10用户推出
焦点快看:读编程与类型系统笔记06_函数类型的高级应用
全球热消息:NVIDIA发布GeForce 527.37驱动 4倍性能提升的DLSS3游戏再加一
焦点播报:苹果A处理器不玩性能!iPhone 16曝光:屏幕更完美、2TB售价欲超2万
环球信息:美国家庭平均月薪出炉引热议:超出想象!就这还靠信用卡续命
你贡献过几部iPhone?全球最强打工人:苹果库克年薪近1亿美元 自愿降薪40%
每日速递:监管新规下车险保费最高可降23%?业内人士:有些还会变贵
天天即时看!打破多项纪录!我国汽车产销总量连续14年全球第一:新能源暴涨翻倍
《王者荣耀》兔年春节福利一览:武则天神器传说皮肤来了
我国第一型“金牌火箭” 长二丙火箭成功发射亚太6E卫星
全球动态:[概率论与数理统计]笔记:3.5 大数定律与中心极限定理
环球滚动:Spring Cloud Alibaba 2022.0.0.0 版本发布啦!
国产高端手机份额第一!卢伟冰:小米13系列好评99% 自然销量高
【天天快播报】史上第一颗6GHz CPU!i9-13900KS发布:性能涨3% 价格涨20%
理想汽车CEO曾试图接触威马沈晖?本人回应:纯属放屁!
世界新资讯:韩国第一个月球探测器发回第一张照片:地月黑白合影
每日资讯:【深度学习】常用PyTorch CUDA版本whl下载及在线安装命令
世界今日讯!「闲话随笔」势能分析法
全球短讯!MQ——如何选择消息队列
微头条丨女子乘火车遇麻将专列生意火爆 还能K歌引围观:网友直呼想买站票
全球观焦点:三级应急响应启动!寒潮预警升级 降温图又变紫了:局地降超20度
天天观天下!盖茨自曝他的主力机是三星Galaxy Z Fold4:李在镕送的
全球热文:《卧龙:苍天陨落》中配预告 声优大佬云集、虎牢关战吕布超燃
学习笔记——Mybatis中缓存机制
播报:区块链特辑——solidity语言基础(五)
热文:Python实现希尔排序、快速排序、归并排序
苹果兔年新春大片《过五关》发布!iPhone 14 Pro拍摄国粹京剧