POJ-3621 Sightseeing Cows 最优比率环、01分数规划
题目链接:http://poj.org/problem?id=3621
这题是01分数规划问题,详细资料点这里。有了01分数规划的基础后,这个题目就很简单了。构建函数f(mid)=Σ(w[i]-mid*d[i]),然后二分mid,如果图中有正权环,则f(mid)>0,则还有更优解l=mid,否则r=mid。
1 //STATUS:C++_AC_563MS_296KB 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 #include<math.h> 6 #include<iostream> 7 #include<string> 8 #include<algorithm> 9 #include<vector> 10 #include<queue> 11 #include<stack> 12 using namespace std; 13 #define LL __int64 14 #define pii pair<int,int> 15 #define Max(a,b) ((a)>(b)?(a):(b)) 16 #define Min(a,b) ((a)<(b)?(a):(b)) 17 #define mem(a,b) memset(a,b,sizeof(a)) 18 #define lson l,mid,rt<<1 19 #define rson mid+1,r,rt<<1|1 20 const int N=1010,M=1000000,INF=0x3f3f3f3f,MOD=1999997; 21 const LL LLNF=0x3f3f3f3f3f3f3f3fLL; 22 const double DNF=100000000; 23 24 struct Edge{ 25 int u,v,w; 26 }e[5*N]; 27 double d[N]; 28 int w[N],inq[N],first[N],next[5*N],cou[N]; 29 int n,m,mt; 30 31 void adde(int a,int b,int c) 32 { 33 e[mt].u=a,e[mt].v=b,e[mt].w=c; 34 next[mt]=first[a],first[a]=mt++; 35 } 36 37 int SPFA(int s,double mid) 38 { 39 int i,j,u,v; 40 queue<int> q; 41 for(i=1;i<=n;i++)d[i]=-DNF;d[s]=0; 42 mem(inq,0);mem(cou,0); 43 q.push(s); 44 while(!q.empty()){ 45 u=q.front();q.pop(); 46 inq[u]=0; 47 for(i=first[u];i!=-1;i=next[i]){ 48 v=e[i].v; 49 if(d[u]+w[u]-e[i].w*mid>d[v]){ 50 d[v]=d[u]+w[u]-e[i].w*mid; 51 if(!inq[v]){ 52 inq[v]=1; 53 if(++cou[v]==n)return 1; 54 q.push(v); 55 } 56 } 57 } 58 } 59 return 0; 60 } 61 62 double binary() 63 { 64 double l=0,r=1000,mid; 65 while(r-l>1e-3){ 66 mid=l+(r-l)/2; 67 if(SPFA(1,mid)>0)l=mid; 68 else r=mid; 69 } 70 return mid; 71 } 72 73 int main() 74 { 75 // freopen("in.txt","r",stdin); 76 int i,j,a,b,c; 77 while(~scanf("%d%d",&n,&m)) 78 { 79 mt=0; 80 mem(first,-1); 81 for(i=1;i<=n;i++) 82 scanf("%d",&w[i]); 83 for(i=0;i<m;i++){ 84 scanf("%d%d%d",&a,&b,&c); 85 adde(a,b,c); 86 } 87 88 printf("%.2lf\n",binary()); 89 } 90 return 0; 91 }
转载于:https://www.cnblogs.com/zhsl/archive/2013/01/29/2881626.html
POJ-3621 Sightseeing Cows 最优比率环、01分数规划相关推荐
- POJ 3621 Sightseeing Cows [最优比率环]
感觉去年9月的自己好$naive$ http://www.cnblogs.com/candy99/p/5868948.html 现在不也是嘛 裸题,具体看学习笔记 二分答案之后判负环就行了 $dfs$ ...
- poj 2728 Desert King(最小比率生成树 / 0-1分数规划 / 二分)
二分答案,我们要找最小的答案,如果有更小的答案说明 ∑W−Z∗∑L<=0∑W−Z∗∑L <= 0∑W−Z∗∑L<=0. #include<cstdio> #include ...
- poj 3621 Sightseeing Cows 01分数规划
题目大意: http://poj.org/problem?id=3621 题解: 首先我们容易发现最优的路线一定只经过一个环. 所以我们可以把点权合并到边权上. 然后就转化为了一个01分数规划问题 求 ...
- POJ 3621 Sightseeing Cows
SPFA+0/1分数规划. CODE: #include <iostream> #include <cstdlib> #include <cstdio> #incl ...
- POJ 3621 Sightseeing Cows(最优比率环+spfa的dfs判环优化)
题目链接 题目大意:给你一个有向图,每个点都有一个权值,每条边都有一个长度,需要找到一个各点权值和/各边长度和 最大的环出来,输出这个比值. 分析:假设结点权值为wiw_iwi,边的长度为lil_i ...
- POJ-2728 Desert King 最优比例生成树 01分数规划/参数搜索
题意:给定N个三维平面点,每个点都有一个高度,每两个点之间的需要构边,边的距离由x,y坐标的欧几里得距离确定,边的花费有点的高度差即z值确定,现在问一个合理的生成树中,花费比上距离的最小值为多少? 解 ...
- 转载二分 01 分数规划即最大化平均值的证明0/1分数规划、最优比率生成树、最优比率环
首页 新随笔 联系 管理 订阅 随笔- 20 文章- 0 评论- 9 [Algorithm]01分数规划--Update:2012年7月27日 [关键字] 0/1分数规划.最优比率生成树.最优比率 ...
- poj 2976 Dropping tests 01分数规划
题目大意: http://poj.org/problem?id=2976 题解: 裸的01分数规划 #include <cstdio> #include <cstring> # ...
- bzoj 1690: [Usaco2007 Dec]奶牛的旅行(01分数规划--最优比率环)
01分数规划问题: 给你n个物品,a[i]表示第i个物品的收益,b[i]表示代价,x[i]表示选或不选,求一个最佳方案使得下式取值最大 通用解: 当然是从式子上考虑,定义函数F[cnt]如下: 其中c ...
最新文章
- 银监会警示担保圈贷款风险 联保贷款变异 防多米诺效应
- MTK方案下tee.img的打包方式的详细拆解
- linux pdf转换swf,CENTOS 5 PDF转换为SWF
- visual studio无法更新_微软发布 VS Code Python 四月更新
- 判别测试字段怎么算它的位数_心理测试 | 成人依恋量表-亲密关系经历量表ECR...
- mysql binlog redo_mysql的binlog与redo log
- 宏定义 #define 和常量 const 的区别
- JAVA 雪花算法 唯一ID生成工具类
- 洛谷P1182 数列分段 Section II(二分+贪心)
- android各个版本市场占有率(2013年3月)
- Mac触发角(Hot Corners) 进阶技巧
- 信道模型时延和路径增益:cost207,cost2100,cost259,cost273,SCM,I-METRA,WINNER II
- 《深入理解nginx》总结
- java udp判断端口是否打开,java udp 端口
- 再遇soundmix.dll,小试pe_xscan
- POI导出echarts统计报表到Excel
- tenacity -- Python中一个专门用来retry的库
- MIX2 适配看这一篇就够了,18:9 只需一行代码
- android 开游艇游戏,游艇狂飙游戏-游艇狂飙安卓版预约_第一手游网
- 花青素类荧光染料Sulfo-Cy3.5 NH2,Sulfo-Cyanine3.5 amine,磺酸基-花青素Cyanine3.5 氨基,可以用来标记蛋白
热门文章
- Spring Boot 如何快速改造老项目?
- Google MapReduce有啥巧妙优化?
- Linux 还能这么玩,10 个非常有趣的命令!
- 让面试官颤抖的 HTTP 2.0 协议面试题
- Collections.sort()自定义排序方式
- 数据库事务隔离技术之 Next-Key Locks
- 全面总结:进程与线程
- Java 多态中成员变量与成员属性的特点【复习】
- php升级的痛苦,升级 PHP 7.4 带来的两个大坑
- bootstrap获取表格中选中行的值_这才是No.1的Excel表格核对技巧