01分数规划

$N$个物品选$k$个,最大化:

$\frac{\sum\limits_{i=1}^{k}A_i}{\sum\limits_{i=1}^{k}B_i}$

二分答案$mid$

如果

$\sum\limits_{i=1}^{k}{A_i-mid*B_i}\ >\ 0$

则可以更优

显然是要选择$A_i-mid*B_i$的前$k$大

最优比率生成树

最小化生成树的$n$条边

$\frac{\sum\limits_{i,j=1}^{n}cost(i,j)}{\sum\limits_{i,j=1}^{n}Dis(i,j)}$

一样的做法二分答案每次求最小生成树

然后完全图用$Kruskal$多一个$log$,还是用$Prim\ Naive$好(你以为我会告诉你我现学的$Prim$嘛)

最优比率环

找一个环,最大化某个条件

二分答案,在图上转化为负环

$spfa$判断负环:

$1.$普通$BFS$做法,可以先把所有点加到队列里,$d[i]=0$

$2.$$DFS$做法,$d[i]=0$,枚举每个点开始$DFS$,看看会不会形成环

double d[N];
int vis[N],cl;
bool dfs(int u,double mid){vis[u]=cl;for(int i=h[u];i;i=e[i].ne){int v=e[i].v;double w=mid*e[i].w-f[u];if(d[v]>d[u]+w){d[v]=d[u]+w;if(vis[v]==vis[u]) return true;else if(dfs(v,mid)) return true;}}vis[u]=0;return false;
}
bool NegativeCircle(double mid){memset(vis,0,sizeof(vis));for(cl=1;cl<=n;cl++) if(dfs(cl,mid)) return true;return false;
}

DFS

最大权密度子图

$Maximize D=\frac{\sum\limits_{e \in E}x_e}{\sum\limits_{v \in V}x_v}$
$x_e,x_v \in {0,1}$
$\forall e=(u,v) \in E,\ u,v \in V$

同样二分答案$g$,然后判断
$\sum\limits_{e \in E}x_e\ -\ \sum\limits_{v \in V}x_v*g\ >\ 0$则可以更优
二分查找范围$[m,\frac{1}{n}]$,精度$\frac{1}{n^2}$
求解二分查找后式子的最大值使用最大权闭合子图,选一条边则必须选择两个顶点
$s--1-->e--INF-->u,v--g-->t$

[01分数规划]【学习笔记】相关推荐

  1. poj2976(0-1分数规划)

    0-1分数规划 设x[i]等于1或0. 则我们所求的比率 rate = ∑(cost[i] * x[i]) / ∑(cost[i] * x[i]), 0≤i<m . z( rate ) = ∑( ...

  2. 点分治问题 ----------- luoguP2942 [WC2010]重建计划 [点分治 + bfs + 单调队列 + 预处理建树 + 二分 + 01分数规划]

    题目链接 解题思路: 1.对于这个Avgvalue=∑e∈sv(e)∣s∣Avgvalue = \frac{\sum_{e\in s}v(e)}{|s|}Avgvalue=∣s∣∑e∈s​v(e)​ ...

  3. 解题报告:AcWing 1165. 单词环(01分数规划、hash、经验优化)

    本题的关键在于: 建图 01分数规划 本题的数据过大,如果直接spfa判断会TLE,因此我们使用经验优化,就是如果所有的点入队的次数过多,比如大于100000,那么我们直接认为它是存在正环的.(免去T ...

  4. 模板 - 判断负环(超时高效优化技巧)、01分数规划

    整理的算法模板合集: ACM模板 判断负环 判正环求最长路,判负环求最短路 int n; // 总点数 int h[N], w[N], e[N], ne[N], idx; // 邻接表存储所有边 in ...

  5. 【图论专题】负环与01分数规划

    整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 904. 虫洞 spfa判负环 AcWing 361. 观光奶牛 最优比率环.01分数规划 AcWing 1165. 单词环 0 ...

  6. POJ2728 Desert King ——01分数规划Dinkelbach迭代法+最小生成树prim算法

    首先,纪念我用Linux系统AC的第一题-   安装这个万恶的NOI Linux系统费了6小时的时间,不过好在最后终于装上了,但是因为我安装的Linux系统比较烂,还遭到了小花儿和js的鄙视,唉,本人 ...

  7. POJ 2728 01分数规划

    题意: 最优比率生成树,要求生成树中的所有边的花费与所有边的长度的比值最小 题解: 01分数规划,详见http://www.cnblogs.com/proverbs/archive/2013/01/0 ...

  8. codevs1183 泥泞的道路(01分数规划)

    1183 泥泞的道路  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description CS有n个小区,并且任意小区之间都有两 ...

  9. P1642 规划 01分数规划+树形DP

    $ \color{#0066ff}{ 题目描述 }$ 某地方有N个工厂,有N-1条路连接它们,且它们两两都可达.每个工厂都有一个产量值和一个污染值.现在工厂要进行规划,拆除其中的M个工厂,使得剩下的工 ...

最新文章

  1. er图转关系模式规则_在石250谈及户外和解。神豪“木湙子”调侃“沈曼流水合同”?“青蛙”630万超皇续费!“婷er骚俊”舰队100图超高返利!...
  2. Codevs2157 配对
  3. fpga如何约束走线_FPGA设计约束技巧之XDC约束之I/O篇 (上)
  4. 【Elasticsearch】Elasticsearch高级调优方法论之——根治慢查询!
  5. Python工作笔记006---在centos命令行里进入和退出Python程序
  6. 新浪微博 API 使用入门
  7. 3个阶段 项目征名_中资企业新签的3个海外项目开工
  8. 一个基于 SpringBoot2+redis+Vue 的商城管理系统,拼团、砍价、秒杀等都有,可二次开发接私活!...
  9. 把 14 亿人拉到一个微信群,如何实现?
  10. App Store2016年最新审核规则
  11. java绘制五角星_java画各种五角星
  12. linux ./ 执行run文件,如何在Ubuntu中执行.bin和.run文件
  13. 电脑连接打印机并共享及其他打印机连接
  14. RTX 3090运行报错:RuntimeError: CUDA error: no kernel image is available for execution on the device
  15. 互联网常用词汇索引表
  16. DASH标准ABR算法介绍
  17. 为什么要有无参构造方法,无参构造的运行原理
  18. 数据分析师要求mysql的_做数据分析师sql需要掌握到什么程度
  19. 使用 eMMC 闪存设备的磨损估计
  20. 动态规划(基于C++)

热门文章

  1. ubuntu下wget下载Linux内核源码、make生成.config文件
  2. React Router 黑笔记?
  3. Java学习day2
  4. 节流函数(throttle)的原理
  5. windows内存管理概述
  6. [swift] Async
  7. PHP中不用第三个变量交换两个变量的值
  8. Creating Your First Mac App--创建你的第一个Mac应用
  9. 据说这是全世界最最最权威、最准的爱情测试
  10. php sql 字段名称,PHPSQL Server – 字段名称被截断