[01分数规划]【学习笔记】
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$,看看会不会形成环
![](/assets/blank.gif)
![](/assets/blank.gif)
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分数规划]【学习笔记】相关推荐
- poj2976(0-1分数规划)
0-1分数规划 设x[i]等于1或0. 则我们所求的比率 rate = ∑(cost[i] * x[i]) / ∑(cost[i] * x[i]), 0≤i<m . z( rate ) = ∑( ...
- 点分治问题 ----------- luoguP2942 [WC2010]重建计划 [点分治 + bfs + 单调队列 + 预处理建树 + 二分 + 01分数规划]
题目链接 解题思路: 1.对于这个Avgvalue=∑e∈sv(e)∣s∣Avgvalue = \frac{\sum_{e\in s}v(e)}{|s|}Avgvalue=∣s∣∑e∈sv(e) ...
- 解题报告:AcWing 1165. 单词环(01分数规划、hash、经验优化)
本题的关键在于: 建图 01分数规划 本题的数据过大,如果直接spfa判断会TLE,因此我们使用经验优化,就是如果所有的点入队的次数过多,比如大于100000,那么我们直接认为它是存在正环的.(免去T ...
- 模板 - 判断负环(超时高效优化技巧)、01分数规划
整理的算法模板合集: ACM模板 判断负环 判正环求最长路,判负环求最短路 int n; // 总点数 int h[N], w[N], e[N], ne[N], idx; // 邻接表存储所有边 in ...
- 【图论专题】负环与01分数规划
整理的算法模板合集: ACM模板 题目列表: 题目 算法 AcWing 904. 虫洞 spfa判负环 AcWing 361. 观光奶牛 最优比率环.01分数规划 AcWing 1165. 单词环 0 ...
- POJ2728 Desert King ——01分数规划Dinkelbach迭代法+最小生成树prim算法
首先,纪念我用Linux系统AC的第一题- 安装这个万恶的NOI Linux系统费了6小时的时间,不过好在最后终于装上了,但是因为我安装的Linux系统比较烂,还遭到了小花儿和js的鄙视,唉,本人 ...
- POJ 2728 01分数规划
题意: 最优比率生成树,要求生成树中的所有边的花费与所有边的长度的比值最小 题解: 01分数规划,详见http://www.cnblogs.com/proverbs/archive/2013/01/0 ...
- codevs1183 泥泞的道路(01分数规划)
1183 泥泞的道路 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description CS有n个小区,并且任意小区之间都有两 ...
- P1642 规划 01分数规划+树形DP
$ \color{#0066ff}{ 题目描述 }$ 某地方有N个工厂,有N-1条路连接它们,且它们两两都可达.每个工厂都有一个产量值和一个污染值.现在工厂要进行规划,拆除其中的M个工厂,使得剩下的工 ...
最新文章
- er图转关系模式规则_在石250谈及户外和解。神豪“木湙子”调侃“沈曼流水合同”?“青蛙”630万超皇续费!“婷er骚俊”舰队100图超高返利!...
- Codevs2157 配对
- fpga如何约束走线_FPGA设计约束技巧之XDC约束之I/O篇 (上)
- 【Elasticsearch】Elasticsearch高级调优方法论之——根治慢查询!
- Python工作笔记006---在centos命令行里进入和退出Python程序
- 新浪微博 API 使用入门
- 3个阶段 项目征名_中资企业新签的3个海外项目开工
- 一个基于 SpringBoot2+redis+Vue 的商城管理系统,拼团、砍价、秒杀等都有,可二次开发接私活!...
- 把 14 亿人拉到一个微信群,如何实现?
- App Store2016年最新审核规则
- java绘制五角星_java画各种五角星
- linux ./ 执行run文件,如何在Ubuntu中执行.bin和.run文件
- 电脑连接打印机并共享及其他打印机连接
- RTX 3090运行报错:RuntimeError: CUDA error: no kernel image is available for execution on the device
- 互联网常用词汇索引表
- DASH标准ABR算法介绍
- 为什么要有无参构造方法,无参构造的运行原理
- 数据分析师要求mysql的_做数据分析师sql需要掌握到什么程度
- 使用 eMMC 闪存设备的磨损估计
- 动态规划(基于C++)