Uva 11248 Frequency Hopping

硬件电路(22)-TTL和232切换电路 工作中会遇到TTL和232电平的通信的状态,为了实现一种便捷的切换方式,参考了一些文章,提供一种电路方便大家使用。 阅读详情

坑爹啊 c可能为0......又是两小时

先求出最大流 然后可能修改的边只能是最小割的边, 枚举没条边

保存修改之前的最大流 每次枚举时不重新找最大流直接在初始最大流上跑

只要最大流超过c就可以停止了

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<iostream>
using namespace std;
typedef long long ll;

const int MAXN = 107;
const ll INF = 1LL << 51;
struct Dinic {
	struct Edge {
		int from, to, flow;
		ll cap;
		Edge() {};
		Edge(int from, int to, ll cap, int flow):from(from), to(to), cap(cap), flow(flow) {}
		bool operator < (const Edge &e) const {
			return from < e.from || from == e.from && to < e.to;
		}
	};
	vector<Edge> edges, estmp;
	vector<int> G[MAXN];
	vector<int> cut;
	Edge able[MAXN*MAXN*2];
	int d[MAXN], cur[MAXN];
	int n, m, s, t;
	int nable;
	ll c, flow;
	bool vis[MAXN];
	
	void init(int n, ll c, int s, int t) {
		this->n = n, this->c = c, this->s = s, this->t = t;
		for(int i = 1; i <= n; i++) G[i].clear();
		edges.clear();
		flow = 0;
	}

	void addedge(int u, int v, ll cap) {
		edges.push_back( Edge(u, v, cap, 0));
		edges.push_back( Edge(v, u, 0, 0));
		m = edges.size();
		G[u].push_back(m - 2);
		G[v].push_back(m - 1);
	}

	bool bfs() {
		memset(vis, 0, sizeof(vis));
		memset(d, -1, sizeof(d));
		queue<int> q;
		q.push(s);
		d[s] = 0;
		vis[s] = true;
		while( !q.empty()) {
			int u = q.front(); q.pop();
			int i, sz = G[u].size();
			for(i = 0; i < sz; i++) {
				Edge e = edges[ G[u][i]];
				if( !vis[e.to] && e.cap > e.flow) {
					vis[e.to] = true;
					d[e.to] = d[u] + 1;
					q.push(e.to);
				}
			}
		}
		return vis[t];
	}

	ll dfs(int u, ll limit) {
		if(u == t || limit == 0) return limit;
		int flow = 0, f, sz = G[u].size();
		for(int &i = cur[u]; i < sz; i++) {
			
			Edge &e = edges[ G[u][i]];
			if(d[u] + 1 == d[e.to] && (f = dfs(e.to, min(limit, e.cap - e.flow) ) ) > 0) {
				e.flow += f;
				edges[ G[u][i] ^ 1].flow -= f;
				flow += f;
				limit -= f;
				if(limit == 0) break;
			}
		}
		return flow;
	}

	bool Maxflow() {
		while( bfs()) {
			memset(cur, 0, sizeof(cur));
			flow += dfs(s, INF);
			if(flow >= c) return true;
		}
		return false;
	}
	void getcut() {
		cut.clear();
		int i, sz = edges.size();
		for(i = 0; i < sz; i += 2) {
			if(vis[ edges[i].from] && !vis[ edges[i].to]) {
				cut.push_back(i);
			}
		}
	}

	void getable() {
		getcut();
		nable = 0;
		estmp.clear();
		int i, sz = edges.size();
		for(i = 0; i <sz; i++) estmp.push_back(edges[i]);
		
		ll lastflow = flow;
		sz = cut.size();
		for(i = 0; i < sz; i++) {
			edges[cut[i]].cap = edges[cut[i]].flow + c;

			if(Maxflow()) able[nable++] = edges[cut[i]];

			flow = lastflow;
			int j, csz = estmp.size();
			edges.clear();
			for(j = 0; j < csz; j++) edges.push_back(estmp[j]);
		}
	}
}Dic;

int main() {
	int n, e, id = 0;
	ll c, cap;
	while(~scanf("%d%d%lld", &n, &e, &c), n|e|c) {
		if(c < 0) while(1);
		Dic.init(n, c, 1, n);
		int i, u, v;
		for(i = 1; i <= e; i++) {
			scanf("%d%d%lld", &u, &v, &cap);
			Dic.addedge(u, v, cap);
		}
		printf("Case %d: ", ++id);
		if(Dic.Maxflow() || c == 0) puts("possible");
		else {
			Dic.getable();
			if(Dic.nable <= 0) puts("not possible");
			else {
				sort(Dic.able, Dic.able + Dic.nable);
				printf("possible option:(%d,%d)", Dic.able[0].from, Dic.able[0].to);
				for(i = 1; i < Dic.nable; i++)
					printf(",(%d,%d)", Dic.able[i].from, Dic.able[i].to);
				puts("");
			}
		}	
	}
	return 0;
}


使用OpenCV从低对比度图像中提取圆形轮廓 希望本文能帮助您从低对比度图像中提取圆形轮在本文中,我们将探讨如何使用OpenCV库从低对比度图像中提取圆形轮廓。低对比度图像通常指的是图像中的亮度差异很小,导致物体边缘不够清晰的情况。在本文中,我们将探讨如何使用OpenCV库从低对比度图像中提取圆形轮廓。低对比度图像通常指的是图像中的亮度差异很小,导致物体边缘不够清晰的情况。通过预处理图像并应用Hough变换,我们能够在低对比度图像中准确地提取圆形轮廓。通过预处理图像并应用Hough变换,我们能够在低对比度图像中准确地提取圆形轮廓。 阅读详情

相关推荐

本体(Ontology)概述

认识本体        本体(Ontology)的概念源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体可以在语义层次上描述知识,可以看成描述某个学科领域知识的一个通用概念模型。德国学者Studer在1998年给出了本体的相关定义“本体是共享概念模型的形式化规范说明”。这个定义包含了四层含义:即共享(share)...

baijinswpu的博客 7万+

uva 11248 Frequency Hopping (最大流)

uva 11248 Frequency Hopping 题目大意:给定一个有向网络,每条边均有一个容量。问是否存在一个从点1到点N。流量为C的流。假设不存在,能否够恰好改动一条弧的容量,使得存在这种流。 解题思路:先依照题目给出的边建好图,然后跑一发最大流,得到原始最大流C1,假设C1==C或者C==0时。能够直接输出possible。假设不存在这种流。那么開始找割边,将这...

weixin_34346099的博客 160

IDEA+JRebel实现SpringBoot+MyBatis Plus项目热部署全攻略(含XML热更新实战)

本文详细介绍了如何在IDEA中使用JRebel为SpringBoot与MyBatis Plus项目配置高效的热部署方案。通过安装激活JRebel插件并配置关键扩展,重点解决了MyBatis XML映射文件修改后无法即时生效的痛点,实现了Java代码与XML文件的秒级热更新,从而彻底摆脱频繁重启应用的开发困境,大幅提升编码与调试效率。

weixin_28831341的博客 472

UVa11248 Frequency Hopping(最大流+最小割)

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33206   【思路】        最大流最小割。        可以确定的是如果不可行需要修改的是流量已经达到上限的最小割中的边。可以考虑依次修改求最大流。        优化:1 在原最大流的基础上增广; 2 只增广到流量C为止。   【代码】

hahalidaxin的专栏 371

BQ25798双电源输入4节电池升降压充电与最大功率跟踪于光伏板应用

介绍一颗具有窄范围直流电压NVDC、路径管理PPMT、光伏板最大功率跟踪及反向放电OTG升降压充电控制器,带I2C接口能对内部寄存器做控制

linkedin_38804946的博客 1681

rk3566-11.0新增device分区

1.增加块设备 2.修改根目录节点权限 3.开机启动自动挂载 增加块设备 1.修改parameter.txt文件,新增块设备大小及命名 device/rockchip/rk356x/rk3566_r/parameter.txt FIRMWARE_VER: 11.0 MACHINE_MODEL: rk3566_r MACHINE_ID: 007 MANUFACTURER: rockchip MAGIC: 0x5041524B ATAG: 0x00200800 MACHINE

weixin_51115260的博客 3384

UVA 11248 Frequency Hopping 最大流和最小割

UVA 11248.题意:给定一个有向网络,每条边均有一个容量。问是否存在一个从点1到点N,流量为C的流,如果不存在,是否可以恰好修改一条弧的容量,使得存在这样的流。思路:先求一次最大流,如果中途就大于等于C或者结尾大于等于C,就直接输出,如果小于C,就需要修改最小割里的弧,依次把最小割里的弧加上C再求最大流与C去比较就行了。#include&lt;cstdio&gt; #include&lt;c...

ccsu_cat 475

还在纠结二层交换机和三层交换机的区别?这篇文章帮你讲明白!

你好,这里是网络技术联盟站,我是瑞哥。公众号后台有小伙伴想要写一篇文章具体介绍一下二层交换机和三层交换机,此类的文章,之前写过几篇,今天瑞哥再写一篇,希望对大家有所帮助!

网络技术联盟站 4442

UVA - 11248 Frequency Hopping(网络流+割)

题目大意:有N个点,M条有向边,每条边都有相应的容量。现在要求你从点1运送东西到点N,运送的量为C 如果可以运送,输出possible 如果不能运送,看能不能只增大一条弧,使得运送成功,如果可以的话,输出所有可增大的弧 如果都不行,另外输出解题思路:先跑一次最大流,最大流如果大于等于C,就不用括弧了 如果不行的话,就进行括弧。 扩大哪些弧的容量呢。答案是割边的容量,因为最小割==最大流

静静地码 1162

倒立摆的PLC控制(模型分析+ SCL源代码)

首先简单介绍下倒立摆模型,下面这幅图是MATLAB网站上的倒立摆模型,下面我们利用牛顿第二运动定律建立摆杆的运动方程。

RXXW_Dor的博客 3336

什么是 SAP ABAP Secure Storage

此过程将单独的密钥存储在密钥路径中的密钥文件中,并自动使用新加密密钥加密安全存储中的所有数据记录。需要注意的是,不要在没有命令行工具的情况下操作密钥文件,例如,不要用不同的版本替换密钥文件,否则,安全存储中的数据记录可能变得不可读。当需要访问这些数据时,系统会对其进行解密。文件系统中的安全存储(Secure Storage in the File System)也是 SAP NetWeaver Application Server for ABAP 的一部分,主要用于安全存储连接相关的数据,如密码等。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 440

UVA 11248 Frequency Hopping (最大流模板)

题意:给定一个网络,每条边都有一个容量,问是否存在1到n的流量为c的流。如果存在,输出possible,如果不存在,是否可以通过修改一条这样的边的容量,使得存在这样的流?如果有若干个答案,排序后输出。 题解:求出最大流,如果大于等于c,就存在,否则,算出最小割,如果,把最小割中的流量增加到c,再求最大流,如果此时的最大流满足大于c,保存答案。因为这样写会超时,所以用到白书给的两个优化。 code: #include<cstdio> #include<cstring> #include

我是蒋卫升呀~ 258

MongoDB分布式事务实现:两阶段提交、日志复制与冲突解决

MongoDB分布式事务机制解析 本文深入剖析了MongoDB 4.0+版本的分布式事务实现原理,重点分析了其在跨文档/跨集合/跨分片场景下的数据一致性解决方案。核心内容包括: 底层机制:采用改进的两阶段提交协议,通过oplog日志复制实现无中心协调器的事务管理,结合WiredTiger存储引擎和锁机制保障ACID特性。 创新设计:将传统2PC的中心协调功能分散到Primary节点,利用oplog作为事务状态记录,实现自动故障恢复和60秒超时回滚机制。 性能优化:针对大事务、写冲突等常见问题,提出拆分微事务

数据知道的博客 1261

UVA 11248 Frequency Hopping

UVA 11248 Frequency Hopping网络流题意给定一个有向网络,每条边均有一个容量。问是否存在一个从点1到点N,流量为C的流。如果不存在,是否可以恰好修改一条弧的容量,使得存在这样的流?思路先求一次最大流,如果流量至少为C,则直接输出possible,否则需要修改的弧一定是最小割里的弧。依次把这些弧的容量增加到C,然后再求最大流,看最大流量是否至少为C即可。 很可惜,这样写出来的

P.H.S 444

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

UVa 11248 Frequency Hopping

该问题考察网络流中的最大流应用,要求判断是否能在基站间现有信道条件下传输C个消息片段。核心解法是将基站建模为节点、信道作为有向边,使用Dinic算法计算从基站1到基站N的最大流。若初始最大流不足,则需找出最小割中的边进行容量增强。实现时需处理大规模数据(C≤2×10^10),通过BFS标记可达节点来识别关键边,仅检查这些边的增强可能性。最终输出能否传输或需增强的边对,按升序排列。算法复杂度O(V²E)适用于题目规模。

寂静山林 848

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

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

uva11248 Frequency Hopping

题意:给定一个有向网络, 每条边均有一个容量。问是否存在一个从点1到点N,流量为C的流。如果不存在, 是否可以恰好修改一条弧饿容量, 使得存在这样的流。 先求最大流mf,如果mf >= C,则直接输出possible 若暂时不存在,那么便是最小割中的边限制了增广路的产生,可以通过修改其中的弧容量(设为C足矣),再求最大流,此时若大于C则此弧可以 不过这样会超时 其实最大流在此题中没有意义,所以当流量>=C的时候就可以停止增广了 还有就是保留第一次增广后的各条边中的流量,以后在此基础上进行增广即可

Colin_27的专栏 807

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

UVA 11248 Frequency Hopping

开始最大流判断容量是否大于C,如果不大于,然后去找最小割中的弧,枚举容量为C,TLE。因为最小割中的弧增加的容量一定会引起最大流的增加,于是我们可以再原有最大流的基础上枚举最小割容量中的弧,然后判断是否大于等于C即可。 楼主渣代码。 #include #include #include #include #include #include #include #include #

Wall_F的专栏 1239

UVA 11248 Frequency Hopping 求割边集

题意:给定一个有向网络,每条边均有一个容量。问是否存在一个从点1到点N,流量为C的流,如果不存在,是否可以恰好修改一条弧的容量,使得存在这样的流。 思路:网络流板子题,用的刘汝佳的模板,先求一次最大流,如果中途就大于等于C或者结尾大于等于C,就直接输出,如果小于C,就需要修改最小割里的弧,依次把最小割里的弧加上C再求最大流与C去比较就行了。 代码: #include<bits/std...

常胜将军的博客 281

UVa 11248 - Frequency Hopping 最大流

题目链接:

poursoul 1331

UVA 11248 - Frequency Hopping(网络流)

UVA 11248 - Frequency Hopping 题目链接 题意:给定一个网络,现在需要从1到N运输流量C,问是否可能,如果可能输出可能,如果不可能,再问是否能通过扩大一条边的容量使得可能,如果可以输出这些边(按u先排再按v排),如果不行输出不可能 思路:先做一遍网络流,然后每次在最小割上进行增加容量,需要两个优化,每次找流量找到>= c就可以了,然后每次修改容量,可以

Remilia's 1213

UVA 11248 - Frequency Hopping

代码如下: #include #include #include #include #include #include using namespace std; const int maxn=10005; const int INF=2100000001; int C; struct Edge { int from,to,cap,flow; }; bool operator < (

char256 611

Uva 11248 Frequency Hopping(最大流)

题意:给定一个有向网络,每条边均有一个容量。问是否存在一个从点1到点N,流量为C的流。如果不存在,是否可以恰好修改一条弧的容量,使得存在这样的流。 思路:先跑一次最大流,如果结果 >= C那么结果是可行的,否则,如果存在某条边满足条件,那么那条边一定是割边,再对求完最大流后的割边枚举,看条件是否满足, 再次求最大流的时候需要保存第一次求完最大流后的结果 #include #i

hnust_Derker的博客 467

UVA 11248 Frequency Hopping 最小割

题意:给你一个n个点 m条边的有向图 问你是否存在一个从1到n且不小于c的流 如果不存在能否通过改变一条边的容量达到要求 思路:这个题就好像最短路树一样 只要改变的路不是最短路树上的 最短距离就不会改变 这个题是只有改变最小割边的容量 最大流才会改变 所以只要求出最小割即可 本题有两个重要的优化 详见代码 PS 为什么我的代码比大神们的多辣么多 QAQ #include #include

s_h_r 507

UVA 11248 Frequency Hopping

题意:给定一个流量网络,问是否存在一个流量为C的流,如果不存在,是否可以恰好修改一个弧的容量,让这个流存在。 思路:先求个最大流,如果大于C,则说明存在这样的流,否则,对于每个最小割的弧,将这个弧的容量添加到C,再求最大流,看最大流是否大于等于C。   代码:   #include #include #include #include #include #include #includ

绝望的乐园 733

UVA 11248 Frequency Hopping(最大流、最小割)

题目:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2205 题目大意:现在有一个网络,每条边有一个容量,问你从 1 到 n 有没有流量为 C 的流,如果有,输出“possible”,如果没有,那么存不存在恰好修改一条边,使得上面的条件成立,如果存在,输

沉溺的专栏 819

UVA 11248 Frequency Hopping(最小割)

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&amp;Itemid=8&amp;page=show_problem&amp;problem=2205 题目大意:给一个有向网络,每条边均有一个容量,问是否存在一个点从点1到点N,流量为C的流,如果不存在,是否可以恰好修改一条弧的容量,使得存在一条这样的流 这道题...

shyoldman的博客 296
上一篇: POJ 3565 Ants
下一篇: Codeforces Round #182 (Div. 1) D. Yaroslav and Divisors
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值