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

思路: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. 基于CentOS6.5下snort+barnyard2+base的入侵检测系统的搭建(图文详解)(博主推荐)

    为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物理机器环境实验室的大数 ...

  2. php 使用serialize() 和 unserialize() 让对象成超级变量

    手册里面的原话和一些总结: php函数serialize()与unserialize()说明及案例.想要将已序列化的字符串变回 PHP 的值,可使用unserialize().serialize()可 ...

  3. nodejs+multiparty 文件上传

    通过表单提交上传文件:     html代码 <form action="/uploadFile" method="post" enctype=" ...

  4. android studio 定时器操作 实现定时执行相关任务

    package ipget.wenzheng.studio.ipget; import android.os.Bundle; import android.os.Handler; import and ...

  5. 清理xcode缓存

    code版本:8.3.3 iOS版本:10.3.2 移除 Xcode 运行安装 APP 产生的缓存文件(DerivedData) 只要重新运行Xcode就一定会重新生成,而且会随着运行程序的增多,占用 ...

  6. Kotlin学习的一些笔记

    Introduction 写在前面 关于本书 这本书适合你吗? 关于作者 介绍 什么是Kotlin? 我们通过Kotlin得到什么 准备工作 Android Studio 安装Kotlin插件 创建一 ...

  7. IOS状态栏

    IOS状态栏是什么地方? 它是IOS设备屏幕顶部显示信号以及电池的区域.状态栏默认的高度是20像素,状态栏在软件开发中有何作用?联网应用中可在自动帮用户下载数据时使用,推荐在状态栏中予以显示.状态栏可 ...

  8. Ubuntu系统下配置PHP支持SQLServer 2005

    最近在做一个项目,该项目的数据库是微软公司的的SQLserver ,数据库安装在另一台windows服务器上,而项目却部署在ubuntu server上.那么这样就会涉及到项目在linux上如何链接S ...

  9. Elasticsearch学习(二)————搜索

    Elasticsearch1.query string search1.1.搜索全部// 1. GET http://ip:9200/test/test/_search 结果: { "too ...

  10. Bug的定义和分类

    什么是BUG 使用人工或自动手段,来运行或测试某个系统的过程.其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别 BUG分类 完全没有实现的功能 基本实现了用户需要的功能,但是运行时 ...