POJ 2976 01分数规划基础题目
题意:
给你一组"数",一共n个,每个数有两个权值,价钱a[i],代价b[i],让你选择n - k使得 sigma(a[i]) / sigma(b[i]) * 100 最大;
思路:
毫无疑问这个是01分数规划的最进本形式,唯一的限制就是取个数,那么我们直接sort以下,取出来就行了。没啥解释的,这个是自己的第一个01分数规划,一会要自己总结下01分数规划的理解了,感觉不是很难,就是证明点东西。
自己总结的01分数规划:
http://blog.csdn.net/u013761036/article/details/26666261
#include<stdio.h>
#include<algorithm>#define N 1000 + 10
#define INF 1000000000
#define eps 0.000001using namespace std;bool camp(double a ,double b)
{return a > b;
}double a[N] ,b[N] ,d[N];bool ok(double L ,int n ,int k)
{double sum = 0;for(int i = 1 ;i <= n ;i ++)d[i] = a[i] - L * b[i];sort(d + 1 ,d + n + 1 ,camp);for(int i = 1 ;i <= n - k ;i ++)sum += d[i];return sum >= 0;
}int main ()
{int n ,k ,i;while(~scanf("%d %d" ,&n ,&k) && n + k){for(i = 1 ;i <= n ;i ++)scanf("%lf" ,&a[i]);for(i = 1 ;i <= n ;i ++)scanf("%lf" ,&b[i]);double low ,up ,mid ,ans = 0;low = 0 ,up = INF;while(up - low >= eps){mid = (low + up) / 2;if(ok(mid ,n ,k))ans = low = mid;elseup = mid;}ans *= 100;printf("%.0lf\n" ,ans);}return 0;
}
POJ 2976 01分数规划基础题目相关推荐
- POJ 2728 01分数规划
题意: 最优比率生成树,要求生成树中的所有边的花费与所有边的长度的比值最小 题解: 01分数规划,详见http://www.cnblogs.com/proverbs/archive/2013/01/0 ...
- ZOJ - 2676 Network Wars(01分数规划+最小割)
题目链接:点击查看 题目大意:给出一个 n 个点和 m 条边组成的无向带权图,现在需要求一个将点 1 和点 n 分开的割集 C ,使得 最小 题目分析:分数式为总权值比上边的数量,换句话说就是一条边只 ...
- poj 2976 基础01分数规划
这个题算是01分数规划的最基本的应用了, 01分数规划是给你n对数(a1, b1)....(an, bn), 然后让你选择一些数对, 使得sigma(ai)/sigma(bi)最大.这里附上讲解一份, ...
- poj 2976 Dropping tests 01分数规划
题目大意: http://poj.org/problem?id=2976 题解: 裸的01分数规划 #include <cstdio> #include <cstring> # ...
- 二分+01分数规划+最大化平均值 Dropping tests POJ - 2976
题意: 给你若n个分数,分子a[i]a[i]a[i],分母b[i]b[i]b[i],使满足公式100⋅∑i=1nai∑i=1nbi100\cdot\tfrac{\sum_{i=1}^{n} a_{i} ...
- poj 3621 Sightseeing Cows 01分数规划
题目大意: http://poj.org/problem?id=3621 题解: 首先我们容易发现最优的路线一定只经过一个环. 所以我们可以把点权合并到边权上. 然后就转化为了一个01分数规划问题 求 ...
- POJ-3621 Sightseeing Cows 最优比率环、01分数规划
题目链接:http://poj.org/problem?id=3621 这题是01分数规划问题,详细资料点这里.有了01分数规划的基础后,这个题目就很简单了.构建函数f(mid)=Σ(w[i]-mid ...
- POJ-2976 Dropping tests 01分数规划
题目链接:http://poj.org/problem?id=2976 很典型的01分数规划,sort+二分即可.注意精度问题,这种四舍五入的问题一般都是两种处理方法:1.printf("% ...
- 转载二分 01 分数规划即最大化平均值的证明0/1分数规划、最优比率生成树、最优比率环
首页 新随笔 联系 管理 订阅 随笔- 20 文章- 0 评论- 9 [Algorithm]01分数规划--Update:2012年7月27日 [关键字] 0/1分数规划.最优比率生成树.最优比率 ...
最新文章
- 程序员笔试面试后上机_2021年国考笔试成绩查询后,面试准备阶段需要做好四方面...
- OEL6.8安装虚拟带库模拟器
- 如何使用JDBC调用存储在数据库中的函数或存储过程 */
- Apache Bench安装与使用
- c++ queue学习
- 通用mapper如何处理多表条件查询通过list封装(强烈不推荐)(一对一,一对多)
- building tool
- 《数学建模:基于R》——1.1 数据的描述性分析
- gcc较高版本的一些编译警告收集
- flex里播放声音的方法
- 【翻译】GRAIL-手写识别
- 酒桌游戏c语言,拯救冷场,这十三款经典酒桌游戏你玩过几个?
- Microsoft Office 2016 简体中文 Vol 版镜像下载
- ajax submittype,AjaxSubmit()提交file文件
- 100个Python实战项目(十一)如何使用 Python 获取电话号码信息?
- 计算机网络基础知识题,计算机网络基础知识试题及答案
- 【超级详细的Vue安装与配置教程】
- AGV机器人核心部件——驱动轮
- windows11常用快捷键
- 为什么自动驾驶遇瓶颈,但自动代客泊车却很热?
热门文章
- Fragment第二次加载没有数据
- 5个强大的Java分布式缓存框架推荐
- HttpClient模拟http请求
- 安装PHP可能会出现的错误
- Silverlight学习笔记清单
- Python笔记_第四篇_高阶编程_正则表达式_3.正则表达式深入
- Linux(Ubuntu 16) 下Java开发环境的配置(一)------JDK的配置
- Redux学习(2) ----- 异步和中间件
- js中的apply()、call() 和 bind()
- Winform、WPF、Silverlight、MFC区别与联系