1486: [HNOI2009]最小圈 - BZOJ

const
maxn=;
maxm=;
inf=;
var
first:array[..maxn]of longint;
next,last:array[..maxm]of longint;
w:array[..maxm]of double;
n,m:longint; procedure init;
var
i,x:longint;
begin
read(n,m);
for i:= to m do
begin
read(x);
read(last[i],w[i]);
next[i]:=first[x];
first[x]:=i;
end;
end; var
flag,vis:array[..maxn]of longint;
dis:array[..maxn]of double;
time,time2:longint;
ans:double; function dfs(x:longint;f:double):boolean;
var
i:longint;
begin
flag[x]:=time;
vis[x]:=time2;
dis[x]:=f;
i:=first[x];
while i<> do
begin
if f+w[i]-ans<= then
begin
if vis[last[i]]=time2 then
if dis[last[i]]>=f+w[i]-ans then exit(true);
if vis[last[i]]<>time2 then
if dfs(last[i],f+w[i]-ans) then exit(true);
end;
i:=next[i];
end;
vis[x]:=time2-;
exit(false);
end; procedure work;
var
i:longint;
l,r:double;
f:boolean;
begin
l:=-;
r:=-l;
while r-l>1e-9 do
begin
ans:=(l+r)/;
inc(time);
f:=false;
for i:= to n do
if flag[i]<>time then
begin
inc(time2);
if dfs(i,) then
begin
f:=true;
break;
end;
end;
if f then r:=ans
else l:=ans;
end;
writeln(ans::);
end; begin
init;
work;
end.
1486: [HNOI2009]最小圈 - BZOJ的更多相关文章
- bzoj 1486: [HNOI2009]最小圈 dfs求负环
1486: [HNOI2009]最小圈 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1022 Solved: 487[Submit][Status] ...
- BZOJ 1486: [HNOI2009]最小圈( 二分答案 + dfs判负圈 )
二分答案m, 然后全部边权减掉m, 假如存在负圈, 那么说明有平均值更小的圈存在. 负圈用dfs判断. ------------------------------------------------ ...
- 1486: [HNOI2009]最小圈
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 3129 Solved: 1543[Submit][Status][Discuss] Descripti ...
- [BZOJ 1486][HNOI2009]最小圈(二分答案+dfs写的spfa判负环)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1486 分析:容易想到先二分答案x,然后把所有边的权值-x,那么如果图中存在权值和为0的 ...
- BZOJ 1486: [HNOI2009]最小圈 [01分数规划]
裸题...平均权值最小的环.... 注意$dfs-spfa$时$dfs(cl)$...不要写成$dfs(u)$ #include <iostream> #include <cstdi ...
- bzoj 1486: [HNOI2009]最小圈
Description Input Output Sample Input 4 5 1 2 5 2 3 5 3 1 5 2 4 3 4 1 3 Sample Output 3.66666667 HIN ...
- 【BZOJ】1486 [HNOI2009]最小圈
[算法]二分+spfa [题解]据说这个叫分数规划? 0-1分数规划 二分答案a,则对于任意的环有w/k≤a即w-ak≤0,若满足条件则a变小,否则a变大. 因为w=w1+w2+...+wk,所以变形 ...
- bzoj千题计划227:bzoj1486: [HNOI2009]最小圈
http://www.lydsy.com/JudgeOnline/problem.php?id=1486 二分答案 dfs版spfa判负环 #include<queue> #include ...
- BZOJ1486 HNOI2009 最小圈 【01分数规划】
BZOJ1486 HNOI2009 最小圈 Description 应该算是01分数规划的裸板题了吧..但是第一次写还是遇到了一些困难,vis数组不清零之类的 假设一个答案成立,那么一定可以找到一个环 ...
随机推荐
- slickgrid 一个优秀的JS表格插件
从熟悉JS以来,慢慢的喜欢上了这个门语言. 不自觉的,看了好多js的知识,可能也是因为做项目的原因吧. 这里稍微说下一个JS的grid插件 --slickgrid 了解这个插件也不是很多,稍微了解了下 ...
- Java中Properties类的学习总结
学习目标: 1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 一.认识prope ...
- Objective-C 【电商APP应用代码-系统分析-详细注释-代码实现】
------------------------------------------- 电商APP应用 ************************************************ ...
- 让apache与mysql随着系统自动启动
让apache与mysql随着系统自动启动 在Linux中有一个文件/etc/rc.d/rc.local文件,其系统在启动时会自动加载该文件,我们可以把要启动的服务放入这个文件中即可. 添加以下代码:
- c++学习——类成员的访问权限
成员的访问权限 Public: 任何人,尤其是那些要使用这个类库的客户程序员,都能访问那个紧跟在public 后面声明的成员. 默认的package: 在同一个目录里面的文件,并且都没有明确指明它是属 ...
- DataGrid3
a标签,DataGrid的数据绑定 1.function aa(id, url) { //alert(id); window.open(url + '&am ...
- age
#include<iostream> #include<math.h> #define pi 3.14 using namespace std; int main() { in ...
- BCB6中SCALERICHVIEW加入GIF动画
记载下,花了不少时间. 1. 项目导入文件GIFImage.pas 来源:http://melander.dk/delphi/gifimage/ 2. 项目导入文件RVGifAnimate.pas ...
- 《APUE》第四章笔记(4)
这算是在博客园写的第一篇文章啊,之前都在csdn写(虽然才写了几篇,因为开通也没多少天..),还是稍微期待下吧.我写博客的主要意图是一来能够记录下来自己所学过的东西,二来也想能够跟大家交流,能够得到更 ...
- linux中nodejs后台运行工具forever
forever让nodejs应用后台执行 命令如下: forever start './bin/www' nodejs一般是当成一条用户命令执行的,当用户断开客户连接,运用也就停了,很烦人.如何让no ...