【POJ3621】Sightseeing Cows

题意:在给定的一个图上寻找一个环路,使得总欢乐值(经过的点权值之和)/ 总时间(经过的边权值之和)最大。

题解:显然是分数规划,二分答案ans,将每条边的权值变成(ans*边权-2*起始点点权),然后我们希望找出一个环,使得环上的总边权<0

(一开始我把题意理解错了,题中给的是单向边,我把它当成是双向边+每条边只能走一次了~,想出一堆做法都接连pass掉)

然后就直接用SPFA判负环就好了嘛!由于原图不一定联通,所以一开始就把所有点都入队就完事了

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <queue>
  4. #include <cstring>
  5. using namespace std;
  6. int n,m,cnt;
  7. int f[1010],to[10010],next[10010],head[1010];
  8. int pa[5010],pb[5010],pt[5010],len[1010],inq[1010];
  9. double dis[1010],val[10010];
  10. queue<int> q;
  11. void add(int a,int b,double c)
  12. {
  13. to[cnt]=b,val[cnt]=c,next[cnt]=head[a],head[a]=cnt++;
  14. }
  15. int solve(double sta)
  16. {
  17. memset(head,-1,sizeof(head));
  18. memset(len,0,sizeof(len));
  19. cnt=0;
  20. int i,u;
  21. for(i=1;i<=m;i++) add(pa[i],pb[i],sta*pt[i]-f[pa[i]]);
  22. while(!q.empty()) q.pop();
  23. for(i=1;i<=n;i++) q.push(i),dis[i]=0.0,len[i]=1;
  24. while(!q.empty())
  25. {
  26. u=q.front(),q.pop(),inq[u]=0;
  27. for(i=head[u];i!=-1;i=next[i])
  28. {
  29. if(dis[to[i]]>dis[u]+val[i]+1e-4)
  30. {
  31. dis[to[i]]=dis[u]+val[i];
  32. len[to[i]]=len[u]+1;
  33. if(len[to[i]]>n) return 1;
  34. if(!inq[to[i]])
  35. {
  36. inq[to[i]]=1;
  37. q.push(to[i]);
  38. }
  39. }
  40. }
  41. }
  42. return 0;
  43. }
  44. int main()
  45. {
  46. scanf("%d%d",&n,&m);
  47. int i,a,b,c;
  48. double l=0.0,r=0.0,mid;
  49. for(i=1;i<=n;i++) scanf("%d",&f[i]),r=max(r,1.0*f[i]);
  50. for(i=1;i<=m;i++) scanf("%d%d%d",&pa[i],&pb[i],&pt[i]);
  51. while(r-l>1e-4)
  52. {
  53. mid=(l+r)*0.5;
  54. if(solve(mid)) l=mid;
  55. else r=mid;
  56. }
  57. printf("%.2f",l);
  58. return 0;
  59. }

【POJ3621】Sightseeing Cows 分数规划的更多相关文章

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

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

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

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

  3. poj3621 Sightseeing Cows

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

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

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

  5. POJ3621 Sightseeing Cows【最短路】

    题目大意:在一个无向图里找一个环,是的点权和除以边权和最大 思路:UVA11090姊妹题 事实上当这题点权和都为1时就是上一题TUT #include <stdio.h> #include ...

  6. [转]01分数规划算法 ACM 二分 Dinkelbach 最优比率生成树 最优比率环

    01分数规划 前置技能 二分思想最短路算法一些数学脑细胞? 问题模型1 基本01分数规划问题 给定nn个二元组(valuei,costi)(valuei,costi),valueivaluei是选择此 ...

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

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

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

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

  9. [USACO07DEC]Sightseeing Cows(负环,0/1分数规划)

    [USACO07DEC]Sightseeing Cows Description Farmer John has decided to reward his cows for their hard w ...

随机推荐

  1. 线程池c3p0和dbcp2的配置初始化实例

    一.c3p0 public class ConnectionManager { public static ComboPooledDataSource dataSource; static { try ...

  2. Web服务(Web Service)相关概念

    1.概述 Web服务技术(Web Service )是一种面向服务的架构技术,通过标准的Web协议提供服务,保证不同平台的应用服务能够互相操作. 因为Web服务公布的数据基于XML格式和 SOAP协议 ...

  3. Informix 語法

    1.修改表名稱 RENAME TABLE old_table_name TO new_table_name; 2.分頁 select  SKIP 0 FIRST 1 * from tablename ...

  4. 使用Secure Boot后,导致VMware无法启动虚拟机

    最初安装vmware时就报错  Gtk-Message: Failed to load module "canberra-gtk-module": libcanberra-gtk- ...

  5. action(二)

    RemoveSelf :消失 CCFiniteTimeAction* action = CCSequence::create( CCMoveBy::create( , ccp(,)), CCRotat ...

  6. ADT离线安装教程

    安装eclipse软件.安装后点击HELP菜单,找到下面的Install New Software并点击.   之后会弹出一个对话框,然后我们点击add,接下来弹出ADD对话框,然后我们再点击arch ...

  7. CR, LF, CR/LF区别与关系

    前言 在文本处理中,CR(Carriage Return),LF(Line Feed),CR/LF是不同操作系统上使用的换行符,具体如下: Dos和Windows采用回车+换行CR/LF表示下一行 而 ...

  8. fastjson常用操作

    一. fastjson生成json字符串(JavaBean,List<JavaBean>,List<String>,List<Map<String,Object&g ...

  9. QT在CT上的安装及运行

    http://www.cubie.cc/forum.php?mod=viewthread&tid=2662&highlight=qt

  10. API - 使用Default对象 - 基础篇

    在编写Spider Studio脚本时, Default对象是最常用最重要的一个, 其类型定义如下: Webus3.Spider.Controls.JQueryBrowser Default; 下面介 ...