题目大意:在一个无向图里找一个环,是的点权和除以边权和最大

思路:UVA11090姊妹题 事实上当这题点权和都为1时就是上一题TUT

#include <stdio.h>

#include <iostream>

#include<queue>

#include <string.h>

#include <algorithm>

#define maxn 10009

#define maxm 10001

#define esp 0.001

using namespace std;

int head[1009],next[maxn],now=0,value1[maxn];

int point[maxn],inque[1009],n,m,f[1009];

double dist[1009];

void add(int x,int y,int u,int v)

{

next[++now]=head[x];

head[x]=now;

point[now]=y;

value1[now]=u;

}

int spfa(int s,double ans)

{

memset(inque,0,sizeof(inque));

for(int i=1;i<=n+1;i++)dist[i]=0x3f3f3f3f;

dist[s]=0;

int visit[maxn]={0};

visit[s]=1;

queue<int>q;

q.push(s);

while(!q.empty())

{

int u=q.front();

q.pop();

visit[u]=0;

for(int i=head[u];i;i=next[i])

{

int k=point[i];

double vv=ans*value1[i]-f[k];;

if(dist[u]+vv<dist[k])

{

dist[k]=dist[u]+vv;

if(visit[k]==0)

{

visit[k]=1;

inque[k]++;

if(inque[k]>=n)return 1;

q.push(k);

}

}

}

}

return 0;

}

int main()

{

double l=0,r=2000;

int x,y,v;

scanf("%d%d",&n,&m);

for(int i=1;i<=n;i++)

{

//    add(n+1,i,0,0);

scanf("%d",&f[i]);

}

for(int i=1;i<=m;i++)

{

scanf("%d%d%d",&x,&y,&v);

add(x,y,v,f[y]);

//  add(y,x,v,f[x]);

//  r+=v;

}

while(r-l>esp)

{

double mid=(l+r)/2;

if(spfa(1,mid)==0)r=mid;else l=mid;

}

//   printf("%d\n",spfa(1,6.128));

printf("%.2f\n",l);

return 0;

}

POJ3621 Sightseeing Cows【最短路】的更多相关文章

  1. POJ3621 Sightseeing Cows 最优比率环 二分法

    题目链接:http://poj.org/problem?id=3621 Sightseeing Cows Time Limit: 1000MS   Memory Limit: 65536K Total ...

  2. poj3621 Sightseeing Cows --- 01分数规划

    典型的求最优比例环问题 參考资料: http://blog.csdn.net/hhaile/article/details/8883652 此题中,给出每一个点和每条边的权值,求一个环使 ans=∑点 ...

  3. POJ3621 Sightseeing Cows(最优比率环)

    题目链接:id=3621">http://poj.org/problem?id=3621 在一个有向图中选一个环,使得环上的点权和除以边权和最大.求这个比值. 经典的分数规划问题,我认 ...

  4. poj3621 Sightseeing Cows

    01分数规划 二分+spfa负环(SLF优化) #include<cstdio> #include<iostream> #include<cstring> #inc ...

  5. 【POJ3621】Sightseeing Cows 分数规划

    [POJ3621]Sightseeing Cows 题意:在给定的一个图上寻找一个环路,使得总欢乐值(经过的点权值之和)/ 总时间(经过的边权值之和)最大. 题解:显然是分数规划,二分答案ans,将每 ...

  6. 【POJ3621】【洛谷2868】Sightseeing Cows(分数规划)

    [POJ3621][洛谷2868]Sightseeing Cows(分数规划) 题面 Vjudge 洛谷 大意: 在有向图图中选出一个环,使得这个环的点权\(/\)边权最大 题解 分数规划 二分答案之 ...

  7. 【POJ3621】Sightseeing Cows

    Sightseeing Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8331   Accepted: 2791 ...

  8. Sightseeing Cows(最优比率环)

    Sightseeing Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8915   Accepted: 3000 ...

  9. POJ 3621 Sightseeing Cows 【01分数规划+spfa判正环】

    题目链接:http://poj.org/problem?id=3621 Sightseeing Cows Time Limit: 1000MS   Memory Limit: 65536K Total ...

随机推荐

  1. json和php数组 格式的互相转换

    $json_arr = array('WebName'=>'PHP网站开发教程网','WebSite'=>'http://www.jb51.net');  $php_json = json ...

  2. js修改物理返回键功能

    preventBack: function(theurl){ var pushState = window.history.pushState; //点击物理返回键时,退出到跳转定义首页 if(pus ...

  3. JDK NIO SelectionKey bug

    此bug项目中使用elasticSearch中出现的,原因是,nio事件选择器,在特性内核下以及jdk6版本中,出现不hold线程,死循环获取事件的bug,导致cup使用率过高: 此bug在官网已被修 ...

  4. 笔记《精通css》第2章 选择器,注释

    第2章    选择器,注释 1.常用选择器(id选择器,类选择器,类型选择器,后代选择器,伪类选择器(文档结构之外)) 通用选择器(*{    }) 高级选择器(子选择器,相邻同胞选择器,属性选择器) ...

  5. Java Web MVC实例

    开发环境 Eclipse Java EE IDE for Web Developers. Version: Luna Service Release 2 (4.4.2) tomcat:7.0 数据库: ...

  6. BST AVL RBT B- B+ 的一些理解

    BST(二叉查找树,排序二叉树),如果数据有序的话,组成的二叉树会形成单列的形式,导致查询效率低AVL(平衡二叉树) 使树的左右高度差的绝对值不超过2,保证了查询效率.但是插入和删除会带来多次旋转,导 ...

  7. 不需要用任何辅助工具打包Qt应用程序

    不需要用任何辅助工具打包Qt应用程序.方法如下:    生成release文件后,双击里面的exe文件,会弹出一个对话框,里面提示缺少哪一个DLL文件, 然后根据该文件名到你安装QT软件的目录下的/b ...

  8. mac homebrew安装

    http://book.51cto.com/art/201107/278761.htm 3.2.3 使用 Homebrew 安装 Git Mac OS X 有好几个包管理器,用于管理一些开源软件在 M ...

  9. Mybatis-Generator逆向生成Po,Mapper,XMLMAPPER(一)

    这个地方的生成需要用到三个文件,generatorConfig.xml.mybatis-generator-core-1.3.1.jar和mysql-connector-java-5.1.29.jar ...

  10. (转)Spring管理的Bean的生命周期

    http://blog.csdn.net/yerenyuan_pku/article/details/52834011 bean的初始化时机 前面讲解了Spring容器管理的bean的作用域.接着我们 ...