Description

Kaykobad教授把为ACM选手买饭的任务交给了Nasa。Nasa决定买n种不同的食物。然后他询问了m名选手对每种食物的需求量。选手们当然不会给出任何符合逻辑的回答,他们只是想尽可能的多吃!Nasa很清楚,如果他们得到了想要的分量,他们就只会浪费粮食。Nasa决定不让这件事发生。 
因此他机智的算出了对于每名选手吃一份每种食物能获得多少“满意值”。某人吃一份某种事物的满意值可能是零。如果每个人得到的总满意值超过上限,他就会浪费粮食。Nasa决定不让任何人得到的满意值超过该人的满意值上限。他计划,就算给某个人分数份食物,也不能让任何人的总满意值超过上限! 
Nasa还决定给所有人买完全相同的套餐,这样就不会有人抱怨不公平。 
在满足这些条件后,他最终意识到他的钱是无限的(反正可以找学校报销),因此他将会花尽可能多的钱。

Input

第一行有两个整数n,m(3<=n,m<=20),代表食物种类和人数。 
第二行有n个实数,代表每种食物的单价。 
接下来的m行每行描述一名选手: 
这一行有个n+1个实数。前n个实数是他吃一份每种食物得到的满意值,第n个实数是他的满意值上限。

Output

按格式输出Nasa最多能花多少钱,向上取整。你可以假设不会有舍入误差问题。具体格式见样例。

Sample Input

3 3 
1 0.67 1.67 
1 2 1 430 
3 0 2 460 
1 4 0 420

Sample Output

Nasa can spend 1354 taka.

Hint

taka是孟加拉国的货币单位。

正解:线性规划,单纯形法。

最裸的线性规划,只要目标函数的系数全部乘m就行了。

 //It is made by wfj_2048~
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <vector>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#define inf (1e18)
#define eps (1e-12)
#define il inline
#define RG register
#define ll long long
#define File(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout) using namespace std; double a[][];
int b[],n,m; il int gi(){
RG int x=,q=; RG char ch=getchar(); while ((ch<'' || ch>'') && ch!='-') ch=getchar();
if (ch=='-') q=-,ch=getchar(); while (ch>='' && ch<='') x=x*+ch-,ch=getchar(); return q*x;
} il void pivot(RG int l,RG int e){
RG double k=a[l][e]; a[l][e]=; for (RG int i=;i<=n;++i) a[l][i]/=k;
RG int len=; for (RG int i=;i<=n;++i) if (fabs(a[l][i])>eps) b[++len]=i;
for (RG int i=;i<=m;++i)
if (l!=i && fabs(a[i][e])>eps){
k=a[i][e],a[i][e]=;
for (RG int j=;j<=len;++j) a[i][b[j]]-=k*a[l][b[j]];
}
return;
} il double simplex(){
while (){
RG int l,e; for (e=;e<=n;++e) if (a[][e]>eps) break;
if (e==n+) return -a[][]; RG double tmp=inf;
for (RG int i=;i<=m;++i)
if (a[i][e]>eps && tmp>a[i][]/a[i][e]) tmp=a[i][]/a[i][e],l=i;
if (tmp==inf) return inf; pivot(l,e);
}
} il void work(){
n=gi(),m=gi(); for (RG int i=;i<=n;++i){ scanf("%lf",&a[][i]); a[][i]*=m; }
for (RG int i=;i<=m;++i){
for (RG int j=;j<=n;++j) scanf("%lf",&a[i][j]);
scanf("%lf",&a[i][]);
}
printf("Nasa can spend %0.0lf taka.",ceil(simplex())+eps); return;
} int main(){
File("satisfic");
work();
return ;
}

【Uva 10498】满意值的更多相关文章

  1. UVA 10498 Happiness(线性规划-单纯形)

    Description Prof. Kaykobad has given Nasa the duty of buying some food for the ACM contestents. Nasa ...

  2. UVa 10498 Happiness! (线性规划)

    题意 将N种食品分给m个参赛选手,一个单位的某食品给某个选手一定满足度,每个选手有一个最大满足度.为了避免浪费,分给每一个选手的食品都不超越选手的满足度.已知的各种食品的单价,求最多可以花的钱. 思路 ...

  3. ZOJ 3469 Food Delivery(区间DP)

    https://vjudge.net/problem/ZOJ-3469 题意:在一条直线上有一个餐厅和n个订餐的人,每个人都有随时间上升的不满意值,从餐厅出发,计算出送完时最小的不满意值总和. 思路: ...

  4. BZOJ 3894: 文理分科 [最小割]

    3894: 文理分科 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 674  Solved: 392[Submit][Status][Discuss] ...

  5. Bzoj3894 文理分科

    Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 667  Solved: 389 Description  文理分科是一件很纠结的事情!(虽然看到这个题 ...

  6. TYVJ1982 武器分配

    描述     后勤部队运来一批武器(机枪和盔甲).你要把这些武器分配给手下的marine们(每人一部机枪,一套盔甲).可是问题来了...    这些武器的型号不相同(武器是由出价最低的承包商制造的), ...

  7. 多准则决策模型-TOPSIS方法

    多准则决策–Multiple Criteria Decision Making 多准则决策–Multiple Criteria Decision Making 多准则决策是指在具有相互冲突.不可共度的 ...

  8. 【TYVJ】1982 武器分配(费用流)

    http://tyvj.cn/Problem_Show.aspx?id=1982 一眼题.. 源向每个人连容量为1,费用为0的边. 每个人向一个中转节点na连容量1,费用0的边(你也可以不连,直接连后 ...

  9. ZOJ 3469 Food Delivery

    题目大意: 有n个人,住在一条直线上.第i个人的坐标是Xi,街上有个外卖餐馆的位置是X,现在餐厅工作人员要给街上的每个人送饭,送完之后再回到餐厅,送饭人的速度是V,每个人有个不满意值,当这个人送餐时间 ...

随机推荐

  1. jquery写日期选择器

    跟上我的脚步,让我们来领略代码的世界! 使用jquery做一个日期时间选择器,最好使用bootstrap弹窗 实现: (1)点击文本框弹出窗口: (2)弹窗里面显示日期时间选择下拉 (3)年份取当前年 ...

  2. 关于html中利用jQuery选择子节点方法总结——待续

    好几次碰到类似的要求,每次用的都不一样,在之前的面试的时候就被问到,突然觉得虽然自己做过但是说不出头绪,只能回答什么parent(),next()等等.所以想整理一下. 1.需求一:同页面有两个表格, ...

  3. 今天给大家分享一下PS快捷键大全

    一.工具箱(多种工具共用一个快捷键的可同时按[Shift]加此快捷键选取) 矩形.椭圆选框工具 [M] 移动工具 [V] 套索.多边形套索.磁性套索 [L] 魔棒工具 [W] 裁剪工具 [C] 切片工 ...

  4. 有个程序猿要去当CEO了:(一)事情始末

    事情大概是这样的: 去年年底,我从原公司离职,原因大概是公司绩效不好,呆着也没意思. 后来听说,年终结算遣散了所有人. 今年年初的时候,前老板又找上我,说希望能和我再合作. 起先是想分我一部分干股,让 ...

  5. 手把手教你做个AR涂涂乐

    前段时间公司有一个AR涂涂乐的项目,虽然之前接触过AR也写过小Demo,但是没有完整开发过AR项目.不过经过1个多星期的学习,现在已经把项目相关的技术都学会了,在此向互联网上那些乐于分享的程序员前辈们 ...

  6. C各个类型的大小

    1个字节(byte)是8bit. 我采用的是64位系统,64位指CPU寄存器的数据宽度是64位的. short 和 int:short比int更节省空间,short占内存是Int的一半,当要考虑程序的 ...

  7. 用webstorm自动编译less产出css和sourcemap

    css产出sourcemap有什么用呢,可能大家要问这个问题了. 请移步这里 https://developers.google.com/chrome-developer-tools/docs/css ...

  8. Android布局优化之层级优化

    程序的每个组件和 Layout 都需要经过初始化.布局和绘制,如果布局嵌套层次过深,就会导致加载操作更为耗时,更严重的话还可能导致内存溢出.本节我们学习使用两个工具来检查和优化 Layout. Hie ...

  9. ie11强制兼容模式打开

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

  10. js复制内容到剪切板,兼容pc和手机端,支持Safari浏览器

      最近,一些项目中用到监听用户复制.剪切的操作. 案例1.在PC端,当用户获得一个京东卡的使用券,当用户使用ctrl + C复制得到的使用券时,将使用券的代号复制到粘贴板,以便于用户ctrl+v进行 ...