Uva 11090 Going in Cycle!!

【UVA11090】Going in Cycle!! Going in Cycle!! Description You are given a weighted directed graph with n vertices and m edges. Each cycle in the graph has a weight, which equals to sum of its edges. There are so many cycles in the 阅读详情

又WA无数。。。。。坑爹啊,就不能让我一次A吗??

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<queue>
using namespace std;

const int MAXN = 107;
const int INF = 1 << 27;
struct BellmanFord {
	vector<int> G[MAXN];
	vector<double> W[MAXN];
	double d[MAXN];
	bool inque[MAXN];
	int cnt[MAXN];
	int n;
	void init(int n) {
		this->n = n;
		for(int i = 1; i <= n; i++) {
			G[i].clear();
			W[i].clear();
		}
	}
	void add(int u, int v, double d) {
		G[u].push_back(v);
		W[u].push_back(d);
	}
	void dadd(double d) {
		int i, j, sz;
		for(i = 1; i <= n; i++) {
			sz = W[i].size();
			for(j = 0; j < sz; j++) W[i][j] += d;
		}
	}
	bool judge() {
		int i, u, v, sz;
		memset(cnt, 0, sizeof(cnt));
		queue<int> q;
		for(i = 1; i <= n; i++) {
			d[i] = 0;
			q.push(i);
			inque[i] = true;
		}
		while(!q.empty()) {
			u = q.front();q.pop();
			inque[u] = false;
			sz = G[u].size();
			for(i = 0; i < sz; i++) {
				v = G[u][i];
				if(d[v] > d[u] + W[u][i]) {
					d[v] = d[u] + W[u][i];
					if( !inque[v]) {
						inque[v] = true;
						q.push(v);
						if(++cnt[v] > n) return true;
					}
				}
			}
		}
		return false;
	}
};
BellmanFord Bell;

bool text(double d) {
	Bell.dadd(-d);
	bool ret = Bell.judge();
	Bell.dadd(d);
	return ret;
}
	
int main() {
	int T, id = 0;
	scanf("%d", &T);
	while(T--) {
		int i, n, m, u, v, d;
		scanf("%d%d", &n, &m);
		Bell.init(n);
		int maxd = 0;
		for(i = 1; i <= m; i++) {
			scanf("%d%d%d", &u, &v, &d);
			Bell.add(u, v, d);
			maxd = max(maxd, d);
		}
		printf("Case #%d: ", ++id);
		if( !text(maxd+1)) puts("No cycle found.");
		else {
			double l = 0, h = maxd, m;
			while(h - l > 1e-4) {
				m = (l + h) / 2;
				if(text(m)) h = m;
				else l = m;
			}
			printf("%.2lf\n", l);
		}
	}
	return 0;
}


相关推荐

图像相似度的评价指标 : FID(Fréchet Inception Distance)

FID(Fréchet Inception Distance) 是用来计算真实图像与生成图像的特征向量间距离的一种度量。如果FID值越小,则相似程度越高。最好情况即是FID=0,两个图像相同。 实际计算: 参考链接:https://machinelearningmastery.com/how-to-implement-the-frechet-inception-distance-fid-from-scratch/ # example of calculating the frechet inceptio

weixin_43723625的博客 1万+

UVA 11090 - Going in Cycle!!

二分+SPFA找负环 11090 - Going in Cycle!! Time limit: 3.000 seconds #include #include #include #include #include using namespace std; const double INF=1000000000.; struc

码代码的猿猿 1200

实用电路精讲系列---仪表放大器

摘要 仪表放大器通过三级运放架构实现高共模抑制比(CMRR>100dB)和精密差分放大,其核心是第一级同相运放提供高输入阻抗和可调增益(G=1+2R/RG),第二级差分运放消除共模干扰。具有低失调(≤50μV)、低温漂(≤0.6μV/℃)特性,广泛应用于智能断路器电流监测、ECG心电信号放大等场景。典型电路采用LTC1049运放,通过匹配电阻网络实现199倍差分增益,结合输出缓冲确保信号稳定性。设计时需注意输入共模电压范围限制和增益电阻精度,优选集成IC(如AD620、INA128)以规避分立元件匹配

weixin_40590799的博客 2078

uva 11090 - Going in Cycle!!(二分+BellmanFord)

题目链接:uva 11090 - Going in Cycle!! 二分环的平均值,叫每条边减掉该值,判断是否有负环存在,存在则不行。 #include #include #include #include #include using namespace std; const int maxn = 55; const double eps = 1e-3; str

不慌不忙、不急不躁 585

【高低温试验】试验报告模板

高低温循环试验,验证被测设备(DUT)在极端高温、低温环境下的性能稳定性、功能可靠性及安全性,确保其符合设计规范和相关标准(如GB/T 2423.1、GB/T 2423.2)。:验证设备在剧烈温度变化下的耐受能力(如-40℃↔+85℃,温变速率≥10℃/min)。低温测试标准:GB/T 2423.2-2008(温度-40℃,保持时间4小时):模拟高温高湿环境(如温度+60℃,湿度95%RH),测试防潮性能。

电路巫师把一切不可能变成不可能 1565

Win10下ISE14.7安装避坑全记录:从License加载失败到ChipScope连不上,我踩过的雷都在这了

本文详细记录了在Win10系统下安装ISE14.7时遇到的常见问题及解决方案,包括License加载失败、IMPACT闪退、ChipScope连接故障等。通过实际案例和步骤解析,帮助用户避开安装陷阱,确保FPGA开发工具顺利运行。特别针对license问题提供了兼容性设置和文件修改的实用技巧。

weixin_42683394的博客 226

UVA11090 Going in Cycle!!

analysis 二分+spfa判负环,绝了! 为什么会想到二分?因为问题可以转化为一个单调函数: 平均值越大,存在这种环的可能性就越小 也就是说可以二分平均值然后判断是否存在就可以了 判断如何存在的话,可以考虑这样的回路的性质: 如果对于一个平均值x,存在这样的一个回路A使得A的平均值小于x,那么 ∑i∈Alen[i]∣A∣&lt;x\frac{\sum_{i\in A}len[i]}...

AndrewLi的博客 226

告别‘线束丛林’:手把手拆解车身域控制器(BCM/PEPS/网关)的硬件选型与PCB布局要点

本文深入解析车身域控制器的硬件选型与PCB布局要点,涵盖主控MCU选择、通信接口设计、电源架构优化及EMC设计等关键环节。通过实战案例分享,帮助工程师解决高密度集成带来的电源完整性、热管理和信号隔离挑战,实现更稳定高效的汽车电子系统设计。

weixin_42567279的博客 396

uva11090 Going in Cycle!!

题意:找到图中平均权值最小的回路 思路:假设答案是val 那么图中的边权值减去val,原来的回路便会成为负圈 val的值可以通过二分+spfa判负圈完成

Colin_27的专栏 822

野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(四)(基于HAL库)

以上内容都是参考别人资料自学的,很多地方都是凭感觉,因为理论部分不太会算,只要电机能转就行,其他性能指标都没考虑,因为不会,所以这纯属是学习记录帖。带宽在500时,电流波动小,但是响应很慢,就是堵转后不太容易恢复转动。速度环带宽设定小了,响应不够快,带宽设定大了波动比较大,电机感觉起来也震一点,而且,当带宽设到200的时候,启动直接就锁死了,应该是PI增益设定太大了。电流环带宽的试验:去掉速度环,让Iq_Set=2,Ud=0,此时电机是电流环闭环控制,用手堵转电机然后松开,看电流的波动以及响应情况。

XUEXIDEXIAOhai的博客 4554

华为网络实战:5分钟搞定OSPF+VRRP+MSTP多协议联动配置(附完整命令集)

本文深入解析了在企业网络中如何高效协同部署OSPF、VRRP和MSTP三大协议。通过一个典型的双核心网络案例,详细阐述了从规划、配置到验证的完整流程,重点强调了确保MSTP根桥与VRRP主设备一致的设计原则,以实现最优的二层与三层流量转发路径,并提供了完整的命令集和故障排查思路。

weixin_29251337的博客 154

uva11090 - Going in Cycle!!

I I U P C 2 0 0 6 Problem G: Going in Cycle!! Input: standard input Output: standard output   You are given a weighted directed graph with n vertices and m edges.

534

如何使用VNC对openEuler系统进行远程图形化操作

本文详细介绍了在openEuler系统中配置VNC远程图形化操作的方法。主要内容包括:1)服务端配置:安装GNOME图形界面和TigerVNC服务,创建VNC用户并设置密码,配置VNC服务启动脚本;2)客户端连接:使用VNC Viewer等工具连接服务器;3)常见问题解决方法。通过5901端口建立连接后,用户可远程操作openEuler图形界面,适用于需要图形化管理的场景。

2501_93651177的博客 315

UVA 11090 Going in Cycle!!

要求给定的图的中平均权值最小的环,注意处理自环的情况就能过了。 按照w1+w2+w3+….wn 代码: #include #include #include #include #include #include #include string> #include #include #include #include #include #in

rootial的专栏 574

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

UVa11090 Going in Cycle!!

UVa11090 Going in Cycle!!   链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34650   【思路】    二分+SPFA。    二分平均值mid,如果有平均值小于mid的情况我们就缩小猜测值否则增大猜测值。如何判定?如果有平均值小于mid 则有:w1-mid+w2-mid+w3

hahalidaxin的专栏 362

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

UVA11090 Going in Cycle!!(二分判负环)

UVA11090 Going in Cycle!! 二分答案,用spfa判负环。 注意格式;图不一定连通。 复杂度$O(nmlog(maxw-minw))$ 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue>...

dingqiongliang0363的博客 183

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

UVA - 11090 Going in Cycle!!

UVA - 11090 思路: 二分答案 + spfa判负环 #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define fi first #define se second ...

weixin_34080571的博客 201

UVA 11090 - Going in Cycle!! SPFA

给定一个n个点m条边的加权有向图,求平均权值最小的回路。

细语呢喃 1730

UVA 11090 - Going in Cycle!!(Bellman-Ford)

UVA 11090 - Going in Cycle!! 题目链接 题意:给定一个有向图,球平均权值最小的回路 思路:二分+判负环,每次二分一个值mid,判断是否存在小于mid的环,那么就是(w1 + w2 + w3...) / n 代码: #include #include #include #include #include using namespa

Remilia's 1883

uva 11090 Going in Cycle!!

lrj的思路 用二分猜测mid

Jane的私房菜 621

UVa11090 Going in Cycle!!(BellmanFord)

给定一个包含n个顶点,m条边的加权有向图,求平均权值最小的回路。

多看多听多总结 295

【最短路】UVA11090 Going in Cycle!!解题报告

link 题目大意: 给出一个NNN个点MMM条边的有向图,求边权平均值最小的连通块。 题目分析: 首先,每个连通块的边权平均值为:x=∑k=ijakj−i+1x=\frac{\sum\limits_{k=i}^{j}a_{k}}{j-i+1}x=j−i+1k=i∑j​ak​​ (iii到jjj联通,aia_{i}ai​表示边权)。题目要求平均值最小,即,ans&gt;=∑k=ijakj−...

EPSILON的博客 201

UVa 11090 - Going in Cycle!!

题目 求一个有向图中的平均边长的最小的环。 分析 图论,最短路。二分平均边长,然后所有边长减去二分的值,利用最短路判断是否有负权回路。这里使用floyd求解。 说明 注意自身是环的节点。 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; int data[55][55]; double dist[55][55]; int j...

小白菜又菜 320
上一篇: Uva 10917 Walk Through the Forest
下一篇: POJ 3565 Ants
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值