http://www.lydsy.com/JudgeOnline/problem.php?id=3112

模板题。。。模板又打错了。。。

#include<bits/stdc++.h>
using namespace std;
const int N = ;
const double eps = 1e-;
int n, m, l, e;
int p[N * ];
double a[N][N * ], b[N * ][N];
void pivot(int l, int e)
{
double r = a[l][e]; a[l][e] = 1.0;
for(int i = ; i <= n; ++i) a[l][i] /= r;
p[] = ;
for(int i = ; i <= n; ++i) p[++p[]] = i;
for(int i = ; i <= m; ++i) if(i != l && abs(a[i][e]) > eps)
{
double r = a[i][e]; a[i][e] = ;
for(int j = ; j <= p[]; ++j) a[i][p[j]] -= a[l][p[j]] * r;
}
}
void simplex()
{
while(true)
{
l = e = ;
for(int i = ; i <= n; ++i) if(a[][i] > eps) { e = i; break; }
if(!e) break;
double k = 1e18;
for(int i = m; i; --i) if(a[i][e] > eps && a[i][] / a[i][e] < k)
{ k = a[i][] / a[i][e]; l = i; }
if(!l) return;
pivot(l, e);
}
printf("%d", (int)(-a[][] + 0.5));
}
int main()
{
// freopen("zjoi13_defend.in", "r", stdin);
// freopen("zjoi13_defend.out", "w", stdout);
scanf("%d%d", &n, &m);
for(int i = ; i <= n; ++i) scanf("%lf", &b[][i]);
for(int i = ; i <= m; ++i)
{
int l, r; scanf("%d%d%lf", &l, &r, &b[i][]);
for(int j = l; j <= r; ++j) b[i][j] += 1.0;
}
swap(n, m);
for(int i = ; i <= m; ++i)
for(int j = ; j <= n; ++j) a[i][j] = b[j][i];
simplex();
// fclose(stdin); fclose(stdout);
return ;
}

bzoj3112的更多相关文章

  1. BZOJ3112 [Zjoi2013]防守战线 【单纯形】

    题目链接 BZOJ3112 题解 同志愿者招募 费用流神题 单纯形裸题 \(BZOJ\)可过 洛谷被卡.. #include<algorithm> #include<iostream ...

  2. 【BZOJ3112】[Zjoi2013]防守战线 单纯形法

    [BZOJ3112][Zjoi2013]防守战线 题解:依旧是转化成对偶问题,然后敲板子就行了~ 建完表后发现跟志愿者招募的表正好是相反的,感觉很神奇~ #include <cstdio> ...

  3. bzoj3112 [Zjoi2013]防守战线

    正解:线性规划. 直接套单纯形的板子,因为所约束条件都是>=号,且目标函数为最小值,所以考虑对偶转换,转置一下原矩阵就好了. //It is made by wfj_2048~ #include ...

  4. 单纯形 BZOJ3112: [Zjoi2013]防守战线

    题面自己上网查. 学了一下单纯形.当然 证明什么的 显然是没去学.不然估计就要残废了 上学期已经了解了 什么叫标准型. 听起来高大上 其实没什么 就是加入好多松弛变量+各种*(-1),使得最后成为一般 ...

  5. bzoj3550: [ONTAK2010]Vacation&&bzoj3112: [Zjoi2013]防守战线

    学了下单纯形法解线性规划 看起来好像并不是特别难,第二个code有注释.我还有...*=-....这个不是特别懂 第一个是正常的,第二个是解对偶问题的 #include<cstdio> # ...

随机推荐

  1. vsCode scss安装

    点击在settings.json中编辑写入代码: { /** Easy Sass 插件 **/ "easysass.formats": [ { "format" ...

  2. contab的使用方法

    linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, ...

  3. 总结struts2 iterator status的用法

    1:#status.odd 是否奇数行 2:#status.count 当前行数 3:#status.index 当前行的序号,从0开始『#status.count=#status.index+1』 ...

  4. putchar()和getchar()使用解析

    1.putchar() 作用:输出一个字符 格式:putchar(c),c为输出参数 #include <stdio.h> int main() { char a1='A',b1='B'; ...

  5. [luogu4056 JSOI2009] 火星藏宝图 (贪心 dp)

    传送门 Solution 一个显然的贪心:选的点数越多越好.这个随便推推就知道了. 那么我们就贪心的从一列上挑最靠下的转移 直接转移不斜率优化复杂度\(O(nm)\),吸一口O2过了... Code ...

  6. 剑指offer---圆圈中最后剩下的数

    题目:圆圈中最后剩下的数 要求:0,1,2...n-1 共n个数排成一个圆圈,从数字0开始,每次删除第m个元素,求这个圆圈里面剩下的最后一个元素 如 n=5, m=3 的情况:0, 1, 2, 3, ...

  7. Session共享实现方案调研

    1.背景 随 着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求.目前大多数大型网站的服务器都采用了分布式服务 集群的部署方式,所谓集群,就是让一组计算 ...

  8. python爬虫25 | 爬取下来的数据怎么保存? CSV 了解一下

    大家好 我是小帅b 是一个练习时长两年半的练习生 喜欢 唱! 跳! rap! 篮球! 敲代码! 装逼! 不好意思 我又走错片场了 接下来的几篇文章 小帅b将告诉你 如何将你爬取到的数据保存下来 有文本 ...

  9. RANS VS LES

    Turbulence models

  10. 校长的收藏(洛谷 U4534)

    题目背景 XS中学的校长喜欢收集手办,家里面都是价值不菲的手办. 校长喜欢给手办们排队并且对于某些些区间内的手办喜爱有加. 现在,校长外出散步(找乐子),你潜入他的房间打算借(偷走)他的手办炫耀一下. ...