题目链接

题意

中文题意。

思路

单纯型模板题。

单纯型用来解决线性规划问题。

留坑待填。

算法思路

好长

模板

论文

卿学姐视频

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int INF = 0x3f3f3f3f;
const int N = 1e3 + 11;
const int M = 1e4 + 11;
const double eps = 1e-8;
const double inf = 1000000000;
int n, m;
double cof[M][N], day[N], c[M]; void pivot(int id, int pos, double &ans) {
c[id] /= cof[id][pos];
cof[id][pos] = 1 / cof[id][pos];
for(int i = 1; i <= n; i++)
if(i != pos) cof[id][i] *= cof[id][pos]; for(int i = 1; i <= m; i++) {
if(i != id && fabs(cof[i][pos]) > eps) {
c[i] -= cof[i][pos] * c[id];
for(int j = 1; j <= n; j++)
if(j != pos)
cof[i][j] -= cof[i][pos] * cof[id][j];
cof[i][pos] = -cof[i][pos] * cof[id][pos];
}
}
ans += day[pos] * c[id];
for(int i = 1; i <= n; i++)
if(i != pos) day[i] -= day[pos] * cof[id][i];
day[pos] = -day[pos] * cof[id][pos];
} double simplex() {
double ans = 0;
while(true) {
int pos, id;
for(pos = 1; pos <= n; pos++) if(day[pos] > eps) break;
if(pos == n + 1) return ans;
double tmp = inf;
for(int i = 1; i <= m; i++)
if(cof[i][pos] > eps && c[i] / cof[i][pos] < tmp)
tmp = c[i] / cof[i][pos], id = i;
if(tmp == inf) return inf;
pivot(id, pos, ans);
}
return ans;
} int main() {
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++) scanf("%lf", &day[i]);
for(int i = 1; i <= m; i++) {
int s, t;
scanf("%d%d%lf", &s, &t, &c[i]);
for(int j = s; j <= t; j++) cof[i][j] = 1;
}
double ans = simplex();
printf("%lld\n", LL(ans + 0.5));
return 0;
}

BZOJ 1061:志愿者招募(单纯型)的更多相关文章

  1. bzoj 1061 志愿者招募(最小费用最大流)

    [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 3792  Solved: 2314[Submit][Status][Di ...

  2. BZOJ 1061 志愿者招募(最小费用最大流)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1061 题意:申奥成功后,布布经过不懈努力,终于 成为奥组委下属公司人力资源部门的主管.布 ...

  3. BZOJ 1061 志愿者招募 最小费用流&&线性规划建模

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1061 题目大意: 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主 ...

  4. bzoj 1061 志愿者招募 有上下界费用流做法

    把每一天看作一个点,每一天的志愿者数目就是流量限制,从i到i+1连边,上下界就是(A[i],+inf). 对于每一类志愿者,从T[i]+1到S[i]连边,费用为招募一个志愿者的费用,流量为inf.这样 ...

  5. BZOJ 1061 志愿者招募

    http://www.lydsy.com/JudgeOnline/problem.php?id=1061 思路:可以用不等式的改装变成费用流. 将不等式列出,如果有负的常数,那么就从等式连向T,如果是 ...

  6. bzoj 1061 志愿者招募 费用流

    详见BYV的博客,写的非常全面https://www.byvoid.com/blog/noi-2008-employee /************************************** ...

  7. bzoj [Noi2008] 1061 志愿者招募 单纯形

    [Noi2008]志愿者招募 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 5437  Solved: 3267[Submit][Status][Di ...

  8. BZOJ 3265 志愿者招募加强版(单纯形)

    3265: 志愿者招募加强版 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 848  Solved: 436[Submit][Status][Disc ...

  9. BZOJ 3265 志愿者招募增强版 单

    标题效果:同1061 只是间隔为每种类型的志愿工作是多级 这是卡网络流量?未知 所有在所有的1061您将可以更改为在稍微改变- - #include <cmath> #include &l ...

  10. BZOJ.3265.志愿者招募加强版(费用流SPFA)

    题目链接 见上题. 每类志愿者可能是若干段,不满足那个...全幺模矩阵(全单位模矩阵)的条件,所以线性规划可能存在非整数解. 于是就可以用费用流水过去顺便拿个rank2 233. //20704kb ...

随机推荐

  1. 使用Photoshop切图的三种方式

    PhotoShop切图的三种方式 1. 原始切图 (1)选择工具栏中的切片工具 (2)找到要切片的元素,在右侧的图层框中,使元素背景隐藏,然后用切片工具选择需要切片的元素     (3)导出为web常 ...

  2. 异步Servlet的理解与实践

    AsyncContext理解 Servlet 3.0(JSR315)定义了Servlet/Filter的异步特性规范. 怎么理解"异步Servlet/Filter"及其使用情景? ...

  3. ef core 数据类型 && 表字段名设置

    HasColumnType HasColumnType是指定字段类型 [Column(TypeName = "decimal(18, 2)")] public decimal Mo ...

  4. JS里脱离文档流

    <html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title&g ...

  5. 【C#】wpf添加gif动图支持

    原文:[C#]wpf添加gif动图支持 1.nuget里下载XamlAnimatedGif包,然后安装. 2.添加XamlAnimatedGif包的命名空间:xmlns:gif="https ...

  6. WPF中的多进程(Threading)处理实例(二)

    原文:WPF中的多进程(Threading)处理实例(二) //错误的处理 private void cmdBreakRules_Click(object sender, RoutedEventArg ...

  7. win10 uwp ApplicationView

    原文:win10 uwp ApplicationView 本文和大家介绍一个重要的类,他可以用来设置窗口,如设置启动大小,设置是否允许截图,是否进入全屏,所有和窗口有关的,都可以在他这里设置. 可以使 ...

  8. SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database)

    原文:SQL Server 游标运用:查看所有数据库所有表大小信息(Sizes of All Tables in All Database) 一.本文所涉及的内容(Contents) 本文所涉及的内容 ...

  9. Android零基础入门第20节:CheckBox和RadioButton使用大全

    原文:Android零基础入门第20节:CheckBox和RadioButton使用大全 本期先来学习Button的两个子控件,无论是单选还是复选,在实际开发中都是使用的较多的控件,相信通过本期的学习 ...

  10. Android零基础入门第42节:自定义BaseAdapter

    原文:Android零基础入门第42节:自定义BaseAdapter 在ListView的使用中,有时候还需要在里面加入按钮等控件,实现单独的操作.也就是说,这个ListView不再只是展示数据,也不 ...