【gym 101606K】Knightsbridge Rises (最大流+打印路径)

VLOOKUP_fixed.py 立即下载

https://codeforces.com/gym/101606/problem/K

题意

有 n个吊车,m个重物,现在要把m个重物放上楼顶,每个吊车有两个属性w1,w2,代表把这个吊车放上楼顶需要w1的力量,这个吊车拥有w2的力量,w1为0代表已经在楼顶上了。每个吊车只能使用一次。问是否可以将所有的重物都放上楼顶,并且输出一种方案。

题解

判断是否可行

  1. 设超级源点S,超级汇点T,从S向w1=0的吊车连一条容量为1的边,将所有重物都连一条容量为1的边到T。
  2. 对于每个吊车,因为只能选一次的原因,所以要对其限流,将吊车分裂成两个点W1,W2,从W1连一条容量为1的边到W2。
  3. 如果一个吊车可以拿动另一个吊车那么就从一个吊车的W2连容量为1的边到另一个吊车W1。如果可以拿得动重物,那么就从W2连容量为1的边到重物。
    最大流 == 重物个数 即可行
    打印路径
    因为这个图很特殊,边的容量都是1,所以用没用过可以直接看边的流量是否改变。
    直接从每一个重物沿着反向边找吊车。
    如果找合法的反向边呢?反向边编号为奇数,且流量为负数。
    同时因为对吊车进行了裂点,所以还需注意下吊车的点。

代码

#include <bits/stdc++.h>
using namespace std;
#define FOR0(a,b) for(int i = a; i < b; ++i)
#define FORE(a,b) for(int i = a; i <= b; ++i)
typedef long long ll;
typedef pair<int,int> pii;
const int maxn = 1000;
const int INF = 0x3f3f3f3f;
struct Dinic {
	vector<int> G[maxn];
	struct Edge {
		int from, to, cap, flow;
	};
	void AddEdge(int from, int to, int cap) {
		edges.push_back((Edge){from,to,cap,0});
		edges.push_back((Edge){to,from,0,0});
		m = edges.size();
		G[from].push_back(m-2);
		G[to].push_back(m-1);
	}

	int n,m,s,t;
	vector<Edge> edges;
	
	bool vis[maxn];
	int d[maxn];
	int cur[maxn];
	bool bfs() {
		memset(vis, 0, sizeof vis);
		queue<int> Q;
		Q.push(s);
		d[s] = 0;
		vis[s] = 1;
		while(!Q.empty()) {
			int x = Q.front();
			Q.pop();
			for(int i = 0; i < G[x].size(); ++i) {
				Edge& e = edges[G[x][i]];
				if(!vis[e.to] && e.cap > e.flow) {
					vis[e.to] = 1;
					d[e.to] = d[x]+1;
					Q.push(e.to);
				}
			}
		}
		return vis[t];
	}
	void setn(int n) {
		this->n = n;
	}
	int dfs(int x,int a) {
		if(x == t || a == 0) return a;
		int flow = 0, f;
		for(int& i = cur[x]; i < G[x].size(); ++i) {
			Edge& e = edges[G[x][i]];
			if(d[x]+1 == d[e.to] && (f=dfs(e.to, min(a, e.cap-e.flow))) > 0) {
				e.flow += f;
				edges[G[x][i]^1].flow -= f;
				flow += f;
				a -= f;
				if(a == 0) break;
			}
		}
		return flow;
	}

	int maxflow(int s,int t) {
		this->s = s; this->t = t;
		int flow = 0;
		while(bfs()) {
			memset(cur,0,sizeof cur);
			flow += dfs(s,INF);
		}
		return flow;
	}
	int pre[maxn];
	vector<int> path;
	void dfs2(int x, int s) {

		for(int i = 0; i < G[x].size(); ++i) {
			int w = edges[G[x][i]].flow, v = edges[G[x][i]].to;
			// cout << x <<" " << v << " " << w << " " << G[x][i] << endl;
			if(G[x][i]%2  && w < 0 && v != s) { 
				if(v <= n) {
					
					path.push_back(v);
				}
				dfs2(v,s);
			}
		}
	}
	void print(int m) {
		// for(int i = 0; i < edges.size(); ++i) {
		// 	cout << edges[i].from <<" "<<edges[i].to <<" " << edges[i].flow <<" "<< edges[i].cap << endl;
		// }
		for(int i = 1; i <= m; ++i) {
			path.clear();
			dfs2(2*n+i,0);
			reverse(path.begin(), path.end());
			for(int i = 0; i < path.size(); ++i)
				cout << path[i] <<" ";
			cout << endl;
		}
	}
}dinic;
struct crane {
	int a,b;
}cr[105];
int w[105];
int main() {
	int n;
	scanf("%d", &n);
	for(int i = 1; i <= n; ++i) {
		scanf("%d%d", &cr[i].a, &cr[i].b);
		if(cr[i].a == 0)
			dinic.AddEdge(0,i,1);
		dinic.AddEdge(i,i+n,1);
	}
	int m;
	scanf("%d", &m);
	for(int i = 1; i <= m; ++i) {
		scanf("%d", &w[i]);
		dinic.AddEdge(2*n+i, 2*n+m+1, 1);
	} 
	for(int i = 1; i <= n; ++i) {
		for(int j = 1; j <= n; ++j) {
			if(i == j) continue; 
			if(cr[i].b >= cr[j].a) 
				dinic.AddEdge(n+i,j,1);
		}
		for(int j = 1; j <= m; ++j) {
			if(cr[i].b >= w[j]) {
				dinic.AddEdge(n+i,2*n+j,1);
			}
		}
	}
	dinic.setn(n);
	int flow = dinic.maxflow(0,n*2+m+1);
	if(flow < m) {
		puts("impossible");
	} else {
		// cout << flow << endl;
		dinic.print(m);
	}
	return 0;
}
YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

相关推荐

企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化

企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。

7032: Knightsbridge Rises(网络流+dfs)

Knightsbridge Rises 时间限制:1 Sec内存限制:128 MBSpecial Judge提交:46解决:13[提交] [状态] [讨论版] [命题人:admin] 题目描述 High-rise buildings in the wealthy retail district of Knightsbridge are usually bui...

diaozha3808的博客 172

不会ps,你也可以成为ps高手,最强傻瓜式人像一键磨皮美白瘦脸美妆PS插件

比如:美肤是用来去斑点的,如果效果不太理想,就加大百分比,反之就减小。瘦脸如果脸胖的就打开,正常的就关闭。所谓的一键调节,要不只能调节一种效果,要不就是个预设,然后让你自己再调。同时,该软件还加入了贴心的批量处理功能,能同时处理上千张照片,让您喝着茶也能将工作做完。、自动检测照片中的人脸,包括鼻子,嘴巴,耳朵,眼睛和眉毛。、依托强大的脸部识别功能,可以高效的对人物全身皮肤进行智能识别,处理,使肤质平滑、过渡均匀。,这是网上下载的模糊照片,经过简单处理,你可以发现,眼睛变的更亮,皮肤更白,眼袋消失。

心语家园 - www.xinyucn.cc 2897

GYM 101606 K.Knightsbridge Rises(最大流-Dinic)

Description 现在有mmm个重量分别为TiTiT_i的物品需要吊到楼上,有nnn个吊车,第iii个吊车的重量为WiWiW_i,可以吊起的重量为LiLiL_i,重量为000表示该吊车可以无代价的先放置在楼上以吊起重物或其他吊车,问如果安排吊车可以把这mmm个重物都吊到楼上,一个吊车只能用一次 Input 第一行一整数nnn表示吊车数量,之后nnn行每行两个整数Li,WiLi,WiL...

ZSQ 523

Debian下Rust环境极速安装指南:国内镜像+避坑配置(附清华/中科大源对比)

本文详细介绍了在Debian系统上快速安装和配置Rust开发环境的完整指南。针对国内网络环境,重点对比评测了清华大学、中国科学技术大学等主流镜像源,提供了详细的安装配置步骤、Cargo优化技巧以及常见问题排查方案,帮助开发者显著提升依赖下载和编译效率。

s8t9u0v1w的博客 1161

YOLOV8主干改进方法:C2f-Dual——DualConv轻量化双卷积设计(附改进代码)

DualConv是一种创新的卷积网络结构,旨在构建轻量级的深度神经网络。它通过结合3×3和1×1的卷积核处理相同的输入特征映射通道,优化了信息处理和特征提取。DualConv利用组卷积技术高效排列卷积滤波器,大大降低了计算成本和参数数量。

m0_74890428的博客 4698

Gym 101606K Knightsbridge Rises(最大流+输出路径)

High-rise buildings in the wealthy retail district of Knightsbridge are usually built with exotichoisting machines known, in construction circles, as cranes.While it is common to mount these devices o...

LP_Cong 848

SQL Prompt 9.0插件突然无法使用解决办法(附防联网激活)多图+文字

可能由于Redgate公司最近抓盗版抓得严,导致激活后的SQL Prompt联网后突然无法使用,无论卸载重装都没办法继续使用,本人同时使用SQL Assistant和SQL Prompt,我喜欢SQL Assistant代码提示功能,而SQL Prompt我喜欢将查询结果复制后可以直接生产插入脚本,这是最爽的一件事,即便对表有多么熟悉,没有这些插件,几行语法都要敲大半天,目前本人已经离不开这两个插...

骚团长的博客 1万+

UKIEPC2017 - K - Knightsbridge Rises - 网络流

题解链接 http://www.lucien.ink/archives/320/ 题目链接 http://codeforces.com/gym/101606 题目 High-rise buildings in the wealthy retail district of Knightsbridge are usually built with exotic hoisting ma...

LucienShui 575

AXI backpressure反压机制代码

本文将xilinx的axi读写代码进行修改,实现吞吐量达到50%

m0_64636251的博客 1764

Ubuntu关闭更新提醒的三层控制方法:从GUI到APT配置

Linux系统更新机制本质上是包管理器(APT)驱动的自动化运维流程,其核心原理在于分离‘元数据刷新’、‘安全补丁安装’和‘用户通知’三个职能。这种分层设计既保障了基础安全性,又为系统管理员提供了策略定制空间。技术价值体现在提升生产环境稳定性、规避未经验证的内核/驱动升级风险,并支持ROS、Blender渲染、工业控制等对时序敏感的应用场景。本文聚焦Ubuntu系统入门教程中高频需求——科学关闭软件更新提醒,覆盖Ubuntu 20.04及LTS版本的GUI设置、systemd服务禁用与APT配置修改三大实操

weixin_29698641的博客 394

Gym - 101606 K - Knightsbridge Rises (拆点建图+网络流)

原题地址:https://codeforces.com/gym/101606 题目大意:有nnn台起重机和mmm个物品,每台起重机有两个参数www和lll,www代表起重机的重量,lll代表起重机能举起的最大重量。每件物品都也一个重量ttt。小的起重机能举起大的起重机,并且每种起重机只能使用一次。问能否把这些物品全都举起来,若能,则输出方案;若不能,则输出"impossibleimpossible...

yiqzq的博客 459

三相五柱式消弧线圈自动测控装置设计与实现

本文设计了一种基于STM32的三相五柱式消弧线圈自动测控装置。该装置采用信号注入法检测系统对地电容电流,通过PID自适应算法调节消弧线圈电感值,实现单相接地故障时的快速补偿。硬件系统包含信号采集、注入、控制执行等模块,软件采用Goertzel算法提取特征频率信号,结合增量式PID实现精确控制。实验结果表明,装置电容检测误差小于2%,调谐响应时间小于50ms,满足配电网对消弧线圈自动调谐的技术要求。

AI的内部世界的博客 238

Problem K

Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时

独行无疆的博客 352

风电功率预测项目技术白皮书:短期、超短期、中长期全尺度算法详解与工程落地

聚焦风电功率预测的时间尺度与算法:短期(0~72h)以XGBoost/LightGBM/CatBoost及深度学习为主,超短期(0~4h)采用ARMA+LSTM,中长期用LightGBM等,并涵盖概率预测、多气象源融合、AI大模型+物理模型混合策略、极端天气应对及工程运维要点。

算法工程师 323

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

POJ 1504 Adding Reversed Numbers(水~)

Description 给定n组数据,每组数据包含两个数a和b,求将a反转加上b反转然后整个再反转的值 Input 第一行为一个整数n表示数据组数,接下来n行每行两个整数a,b Output 对于每组用例,输出a反转加上b反转然后整个再反转的值 Sample Input 3 24 1 4358 754 305 794 Sample Output 34 1998 1 S

ZSQ 632

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Buildings Gym - 101873B

As a traveling salesman in a globalized world, Alan has always moved a lot. He almost never lived in the same town for more than a few years until his heart yearned for a different place. However, thi...

七九河开的博客 521

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

2017暑假训练第一场的一些题目

3635: 拯救小鸡 时间限制: 1 Sec 内存限制: 128 MB 提交: 71 解决: 34 [提交][状态][讨论版] 题目描述 鸡国最近遇到了一件很棘手的事情,经常有一只老鹰想来抓小鸡。经鸡国情报员探查,这只老鹰打算共来袭击 n 次,第 i 次来的时刻为第 t i (1≤i≤n) 秒时刻。 鸡国国王为了保护鸡国中的小鸡,决定派出鸡国警察(鸡国有无穷多个警察)来巡逻。 每个警察巡逻的时间长度都为 t 秒。当老鹰来袭击的时刻至少要有 x 名警察才能抵御老鹰的袭击。另外国王派遣警察有两个原则:

雪的期许 1805

poj - 3436 ACM Computer Factory(最大流+打印路径)

ACM Computer Factory Time Limit:1000MS Memory Limit:65536K Total Submissions:10687 Accepted:3986 Special Judge Description As you know, all the computers used...

weixin_30886233的博客 133

[POJ 3436]ACM Computer Factory[最大流][打印路径]

题目链接:[POJ 3436]ACM Computer Factory[最大流][打印路径] 题意分析: 组装一台电脑需要P个部件,现在有N个生产线,每个生产线分三部分的描述:第一个数字代表,这台机器单位时间能接收多少部件,后面的前p个部分代表该生产线需要什么部件,0代表不需要,1代表需要,2代表可有可无(相当于不需要),后p个部分代表产生什么部件,0不产生,1产生。问,怎么样调动这些材料,让整

闲停 1537

洛谷 - P2763 试题库问题(最大流+路径打印)

题目链接:点击查看 题目大意:给出n种试题类型,以及m种试题,现在需要出题,要求每种类型的题目必须满足相应的数目,问应该怎么设计方案 题目分析:一开始其实就建好了图,然后就在怀疑自己建图的正确性,因为没读好题,一开始以为试题如果被选中,那么这个试题会对其对应的类型都做出贡献,然后就自闭了,因为没有办法控制流量,后来去看了一眼题解发现,一个试题虽然可以对应多个类型,但最后被选中的时候只会对其中一...

Falcon的博客 685

POJ3436 ACM Computer Factory

POJ3436 ACM Computer Factory Time Limit:1000MS Memory Limit:65536K Total Submissions:3345 Accepted:1112 Special Judge Description As you know, all the computer...

weixin_30794491的博客 221

E - Slot Machines Gym - 101667I —— kmp

原文链接: https://odzkskevi.qnssl.com/6fd8c99567698f4bad5a228cc982bad7?v=1534480987 这么长的题目我都看不懂,还是别人和我讲的题意,就是给你一串数字,前面可能是没有规律的,后面是有规律的,让你找出需要删掉k个数,然后循环内数的个数是p,k+p最小。 网上kmp算法很多,这个我是看别人的,它可以找到上一个循环的节点。 ...

天翼之城的博客 556
上一篇: 【GYM 101606F】Flipping Coins (概率dp)
下一篇: 【01分数规划】二分+判圈
Link_Ray
博客等级 码龄9年 44粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值