最新要闻
- 今热点:五菱电动“吉姆尼” 宝骏悦也续航里程公布:能跑303公里
- 董明珠要玩大的?格力成立房地产新公司 投资数亿元
- 东方甄选称被骗了 虾品供应商发声:不认可甩锅行为
- 热点在线丨百度文心一言申请页被挤爆:预约1小时涌入3万企业
- 环球快讯:现实版GTA!美劫匪偷直升机因操作失误当场坠毁:一地碎片
- 国宝大熊猫的视频_国宝大熊猫的故事
- 每日速看!铁匠用30年给猫和老鼠做铠甲:一套比一套帅!
- 戴尔推出了灵越14 ARM版:骁龙8cx Gen 2、16小时长续航
- 世界播报:卡布达归来!《铁甲小宝》高清修复版将至:已开通B站账号
- 两败俱伤:比亚迪海豹街头铲翻宝马X5
- 【环球时快讯】小伙爆改特斯拉Model 3:加装120寸轮毂、增加“逆天”功能
- 【新要闻】百度文心一言问答测试为视频演示 李彦宏:为保证效果提前录制
- 全球实时:深蓝SL03车主联合声明:长安雇水军打压车主 要求车辆终身质保加补偿
- 国内首款天玑9000旗舰平板!OPPO Pad 2官宣:下周发布
- 【世界时快讯】曾投资一亿美元:马斯克痛批OpenAI成为营利组织
- 冰墩墩钥匙扣(冰墩墩多少钱一只)
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今日观点!abc285G
ABC 285 G - Tatami
Solution 网络流
网格图是一个天然二分图, 可以按 横纵坐标之和 的奇偶性将相邻两格分属于左部和右部。
记"?" 或 ‘2’ 的格子为待匹配点, 记横纵坐标之和为奇数的为奇待匹配点, 即(i + j)为odd
(资料图片仅供参考)
将匹配点向相邻匹配点连边,建 S 和 T 超级源汇, 将 S 与奇待匹配点连边, 偶待匹配点与T连边
容量皆为1, 跑一边最大流,最后检查与S, T 相连的 ‘2’ 边是否都为零即可。
可惜的是,这种思路只能过赛时数据,被after-contest hack掉了, 这里提供一组数据
Input
4 411?1?22212111?11
Output
Yes
可以看出, 最大流有多种情况, 2与2 的方格不一定能连边
所以只能跑一遍有源汇上下界可行流了。
关于上下界可行流可以看这篇Blog
#include #define for_(i,a,b) for (ll i = (a); i < (b); i++)#define rep_(i,a,b) for (ll i = (a); i <= (b); i++)#define fi first #define se second#define sz(a) a.size()using namespace std;const int maxn = 1e6 + 10, mod = 1e9 + 7;// mod = 1949777;const double EPS = 1e-3;typedef unsigned long long ull;typedef long long ll;typedef pair pii;int n, m; char c[505][505];int inf = 1 << 29;int id[505][505];int dx[5] = {0, 0, 1, -1};int dy[5] = {1, -1, 0, 0}; int d[maxn]; int tot = 1, maxflow;int nxt[maxn], head[maxn], v[maxn], e[maxn], tag[maxn];int now[maxn];// 当前弧优化int Vin[maxn], Vout[maxn];void add(int x, int y, int c) {v[++tot] = y, e[tot] = c, nxt[tot] = head[x]; head[x] = tot;v[++tot] = x, e[tot] = 0, nxt[tot] = head[y], head[y] = tot;}int s, t;bool bfs(){memset(d, 0, sizeof(d));queue q;q.push(s);d[s] = 1; now[s] = head[s];while(q.size()) {int x = q.front(); q.pop();for (int i = head[x]; i; i = nxt[i]) {if (e[i] && !d[v[i]]) {d[v[i]] = d[x] + 1;now[v[i]] = head[v[i]];q.push(v[i]);if (v[i] == t) return 1;}}}return 0;}int dinic(int x, int flow){if (x == t) return flow;int res = flow, k;for (int i = now[x]; i && res; i = nxt[i]) {now[x] = i;if (e[i] && d[v[i]] == d[x] + 1) {k = dinic(v[i], min(res, e[i]));if (!k) d[v[i]] = 0;e[i] -= k;e[i^1] += k;res -= k;}}return flow - res;}int cnt = 0;signed main() {ios::sync_with_stdio(false);cin.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) {for(int j = 1; j <= m; j++) {cin >> c[i][j];id[i][j] = ++cnt; // 标号 预处理比较方便... }}s = 0, t = n * m + 1;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (c[i][j] == "1") continue;if ((i + j) & 1) { // 奇带匹配点 if (c[i][j] == "2") {add(s, id[i][j], 0); // 连一条upper减去lower的边 此处上界为1, 下界为1 , 1 - 1 = 0 // 也可以不连, 此处写出是为了清楚 Vin[id[i][j]]++; // 处于维护流量平衡, 需要记录每个点的流入量&流出量 Vout[s]++; } else add(s, id[i][j], 1);for (int k = 0; k < 4; k++) {int nx = i + dx[k], ny = j + dy[k];if (nx >= 1 && ny >= 1 && nx <= n && ny <= m) {add(id[i][j], id[nx][ny], 1); //带匹配点连边 }}} else {if (c[i][j] == "2") { //同上 Vin[t]++;Vout[id[i][j]]++;add(id[i][j], t, 0);} else add(id[i][j], t, 1);}}}add(t, s, 1e9); // 原图的汇向源连一条inf边,以下皆是上下界可行流的常规操作。 s = n * m + 2, t = n * m + 3; // 新建源汇 for (int i = 0; i <= n * m + 1; i++) {if (Vin[i] > Vout[i]) {add(s, i, Vin[i] - Vout[i]);} else if (Vin[i] < Vout[i]){add(i, t, Vout[i] - Vin[i]);}}int flow, maxflow = 0;// 在差网络上跑最大流 while(bfs()) {while(flow = dinic(s, inf)) maxflow += flow;}int ok = 1;for (int i = head[s]; i; i = nxt[i]) {if (e[i]) ok = 0; //判断有无解 }if (ok) cout << "Yes" << endl;else cout << "No" <
Solution 二分图最大匹配
原先的最大流思路真的不行吗?
如果我们跳出网络流是个天然二分图这个思路, 重新建图,另辟蹊径,即是柳暗花明。
我们知道,原先的想法只是卡在达到最大匹配数但是不是所有的2都被匹配。我们是不是可以交换一些"?"与"2"的匹配, 转而变成"2"与’2‘ 的匹配,我看到洛谷上有大神已经怎么写的了,他是不断寻找增广路, 使得每一个’2‘都尽可能被匹配,在此%%%。
也可以重新建图,求出最大匹配, 然后看匹配数是否等于2的个数即可
#include #define for_(i,a,b) for (ll i = (a); i < (b); i++)#define rep_(i,a,b) for (ll i = (a); i <= (b); i++)#define fi first #define se second#define sz(a) a.size()#define int long long#define pb push_back#define CE cout << endl;#define CO cout << "OK" << endl;using namespace std;const int maxn = 2e6 + 10, mod = 1e9 + 7;// mod = 1949777;const double EPS = 1e-3;typedef unsigned long long ull;typedef long long ll;typedef pair pii;int n, m; char c[505][505];int inf = 1 << 29;int id[505][505];int dx[5] = {0, 0, 1, -1};int dy[5] = {1, -1, 0, 0}; int d[maxn]; int tot = 1, maxflow;int nxt[maxn], head[maxn], v[maxn], e[maxn], tag[maxn];int now[maxn];// 当前弧优化int Vin[maxn], Vout[maxn];void add(int x, int y, int c) {v[++tot] = y, e[tot] = c, nxt[tot] = head[x]; head[x] = tot;v[++tot] = x, e[tot] = 0, nxt[tot] = head[y], head[y] = tot;}int s, t;bool bfs(){memset(d, 0, sizeof(d));queue q;q.push(s);d[s] = 1; now[s] = head[s];while(q.size()) {int x = q.front(); q.pop();for (int i = head[x]; i; i = nxt[i]) {if (e[i] && !d[v[i]]) {d[v[i]] = d[x] + 1;now[v[i]] = head[v[i]];q.push(v[i]);if (v[i] == t) return 1;}}}return 0;}int dinic(int x, int flow){if (x == t) return flow;int res = flow, k;for (int i = now[x]; i && res; i = nxt[i]) {now[x] = i;if (e[i] && d[v[i]] == d[x] + 1) {k = dinic(v[i], min(res, e[i]));if (!k) d[v[i]] = 0;e[i] -= k;e[i^1] += k;res -= k;}}return flow - res;}int cnt = 0;signed main() { ios::sync_with_stdio(false);cin.tie(0);cin>> n >> m;int K = 0;for (int i = 1; i <= n; i++) {for(int j = 1; j <= m; j++) {cin >> c[i][j];if (c[i][j] == "2") K++;id[i][j] = ++cnt;}}s = 0, t = 3 * n * m + 1;for (int i = 1; i <= n; i++) {for (int j = 1; j <= m; j++) {if (c[i][j] == "1") continue;if (c[i][j] == "2") {add(s, id[i][j], 1);for (int k = 0; k < 4; k++) {int nx = i + dx[k], ny = j + dy[k];if (nx >= 1 && ny >= 1 && nx <= n && ny <= m) {if (c[nx][ny] != "1") add(id[i][j], id[nx][ny] + n * m, 1);}}}add(id[i][j] + n * m, t, 1);}}int flow, maxflow = 0;while(bfs()) {while(flow = dinic(s, inf)) maxflow += flow;}if (maxflow == K) cout << "Yes" << endl;else cout << "No" <
关键词:
-
【高端访谈·城市力量】“双碳”背景下农商银行如何“点绿”成金?——访秦农银行党委书记、董事长李彬
李彬表示,抢抓“双碳”下的绿色金融发展机遇,以产业振兴促进乡村振兴,以绿色金融之力擦亮区域经济社...
来源: 视讯!SQLMap 源码阅读
今日观点!abc285G
环球精选!JVM -Xss
【高端访谈·城市力量】“双碳”背景下农商银行如何“点绿”成金?——访秦农银行党委书记、董事长李彬
今热点:五菱电动“吉姆尼” 宝骏悦也续航里程公布:能跑303公里
董明珠要玩大的?格力成立房地产新公司 投资数亿元
东方甄选称被骗了 虾品供应商发声:不认可甩锅行为
热点在线丨百度文心一言申请页被挤爆:预约1小时涌入3万企业
环球快讯:现实版GTA!美劫匪偷直升机因操作失误当场坠毁:一地碎片
国宝大熊猫的视频_国宝大熊猫的故事
66.类型转换
快讯:【0基础学爬虫】爬虫基础之抓包工具的使用
天天热头条丨制作学生信息管理系统
文心一言正式对标GPT-4,是青铜还是王者?
全球播报:恒生指数16日收跌1.72% 互联网科技股集体走低
每日速看!铁匠用30年给猫和老鼠做铠甲:一套比一套帅!
戴尔推出了灵越14 ARM版:骁龙8cx Gen 2、16小时长续航
世界播报:卡布达归来!《铁甲小宝》高清修复版将至:已开通B站账号
两败俱伤:比亚迪海豹街头铲翻宝马X5
块级元素和行内元素
天天实时:SublimeREPL设置详解——实现代码传递(Eval in REPL)
天天观速讯丨JavaScript 实现异步任务循环顺序执行
自定义 Spring 通用日志注解
精彩看点:日债市场继续消化欧美银行风险扰动 收益率曲线陡峭化下移
即时焦点:【财经分析】债市利空反应钝化 后市操作存分歧
每日快报!【新华500】新华500指数(989001)16日跌1.29%
【环球时快讯】小伙爆改特斯拉Model 3:加装120寸轮毂、增加“逆天”功能
【新要闻】百度文心一言问答测试为视频演示 李彦宏:为保证效果提前录制
全球实时:深蓝SL03车主联合声明:长安雇水军打压车主 要求车辆终身质保加补偿
国内首款天玑9000旗舰平板!OPPO Pad 2官宣:下周发布
【世界时快讯】曾投资一亿美元:马斯克痛批OpenAI成为营利组织
冰墩墩钥匙扣(冰墩墩多少钱一只)
最新消息:76.qt qml-QianWindow开源炫酷界面框架(支持白色暗黑渐变自定义控件均以适配)
今热点:Markdown用法解析
世界微动态丨得物从0到1自研客服IM系统的技术实践之路
天天看热讯:性能优化搞得好,Tomcat少不了。| 博学谷狂野架构师
世界观天下!笔记本水冷改造记录
世界球精选!创维造车:主打座舱养生续命、碰撞测试0分!真是讽刺他妈给讽刺开门
环球即时:反转!国内油价明晚大概率下跌 预计下调0.07元/升
《暗黑4》本周末开测 世界BOSS刷新时间公布
天天关注:巴奴火锅下架富硒土豆!消费者可获赠500元储值卡:领取有条件
天天热推荐:百度发布文心一言AI模型:可实现文字、图片与视频智能生成
喝的人越来越少!星巴克向中国三四线城市进军:30多一杯咖啡县城青年能爱多久
麦芒11什么时候上市的?麦芒11手机参数配置
华为电视怎么投屏?华为电视怎么下载第三方软件?
孙海洋是湖北哪里人?
鲶鱼效应是什么意思?鲶鱼效应的经典案例是什么?
首店经济是什么意思?首店经济是谁提出的?
快报:权志龙演唱会门票多少钱2020_权志龙演唱会门票多少钱
环球讯息:用图技术搞定附近好友、时空交集等 7 个典型社交网络应用
GPT-4测评,大家先别急,图片输入还没来
全球时讯:C#使用ObjectPool提高StringBuilder性能
今头条!RTX 40笔记本新品翻车?别急 先升级NVIDIA新驱动再说
每日精选:官宣!《炉石传说》被移出杭州亚运会项目:职业选手难过
环球快消息!360发布年度手机安全报告:受骗男性占七成 女性三成
天天最资讯丨800V电气架构打造 全新起亚EV9发布:二三排可面对面乘坐
扣上的安全带会自动打开?本田在美国召回近45万辆汽车
【独家焦点】虹科案例|虹科Visokio商业智能平台在疫后帮酒店业打好翻身仗!
环球今热点:python 二分法查找
环球实时:面试问题-密码
Fortran语言在线代码运行编译工具推荐
Scrapy中的response对象的属性及方法,附加mate属性的使用方法
每日短讯:强冷空气来袭!河南三门峡3月下雪:厚厚一层一夜回冬
环球要闻:爱立信CEO:印度是全球推出5G速度最快的国家之一
上映25周年纪念:3D重制版《泰坦尼克号》国内定档
真凉了!暴雪网易闹掰 《炉石传说》或被移出杭州亚运会项目
世界快看:B站投资 网红爆款:理然男士沐浴露29.9元狂促
更改 ESX 或 ESXi 主机的主机名称
每日快讯!作业DNS服务配置
NOI 2008 志愿者招募 题解 (神奇费用流)
NutUI-React 京东移动端组件库 2月份上新!欢迎使用!
传递“坚持”背后的感人力量
环球新资讯:恒生中国发布2022年ESG报告 持续提升绿色金融产品与服务质量
日本央行削减购债引发政策转向猜测 超长端日债收益率显著回升
天天精选!中银香港完成5亿绿色人民币逆回购交易
世界今日讯!预购玩家可抢先游玩:《暗黑破坏神4》已开启Beta测试预载
天天看点:8999元 联想小新Pro27 2023一体机来了:13代i9、锐炫A370M独显
苦情戏直播涉事公司被查处!央视315点名诱骗老人直播间均已被封
比降价还狠!最帅国产猎装车极氪001限时福利:数万元升级包免费选
398元烫发烫完变成3980元 商家:把头发分成10个区域 每个区域398元
Linux进程通信 | 信号
GPT-4:不了不了,这些我还做不到
每日信息:前端设计模式——迭代器模式
Django-4
每日消息!Minio架构简介
环球观焦点:女子住酒店被毒蛇咬伤 酒店拒担全责有啥能证明引热议:律师发声
世界即时:奇葩创维汽车:碰撞试验0分 开创维汽车寿命延长30岁
环球微头条丨70岁赵雅芝踏青 短裤白衫引网友惊叹:真不老女神
热点!或12万起售对刚比亚迪海豚 大众微型电动车ID.2all概念车首发
世界快报:曾引发隐私争议 谷歌眼睛正式停售:退出科技舞台
【时快讯】海报丨人民武警忠诚党
天天热议:使用旧电脑玩Linux
起底汕头赤脚踩腌菜涉事公司:成立才1年时间
天天微动态丨阿根廷游戏制作人感谢中国玩家 理解了什么是“精神阿根廷人”
全球微动态丨年轻人看不上!瓦工年收入或超25万元仍招不到人 网友感慨能秒杀多数白领
Tesseract5+OpenCV4(VS2017+win10)实现OCR识别
【全球新要闻】微微一笑很倾城里面的游戏_微微一笑很倾城里面的游戏是什么
报道:河南兄弟俩花光父亲百万死亡赔偿金打赏女主播 平台:想退款拿出依据
世界热头条丨印度计划强制要求手机厂商允许删除预装应用:印度制造还要模仿中国互联网产业
焦点日报:Tiffany被曝一钻两卖 当事人交18.6万后被告知已卖掉:网友唏嘘钻石真不值钱