BZOJ 3265 志愿者招募加强版(单纯形)
3265: 志愿者招募加强版
Time Limit: 20 Sec Memory Limit: 512 MB
Submit: 848 Solved: 436
[Submit][Status][Discuss]
Description
.jpg)
Input

Output

Sample Input
2 3 4
1 1 2 2
1 2 3 5
1 3 3 2
Sample Output
HINT

#include<bits/stdc++.h>
using namespace std;
#define cls(x, val) memset(x,val,sizeof(x))
#define RI register int
#define eps 1e-6
typedef long long ll;
typedef unsigned long long ull;
const int INF=0x3f3f3f3f;
inline int read()
{
int x=,f=;char ch=getchar();
while(ch<''||ch>'') {if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
const int N=;
const int M=;
int n,m;
double a[M][N],b[M],c[M],v;
inline void pivot(int l,int e)//矩阵的转秩
{
b[l]/=a[l][e];
for(int j=;j<=n;++j)
{
if(j!=e) a[l][j]/=a[l][e];
}
a[l][e]=/a[l][e];
for(int i=;i<=m;++i)
{
if(i!=l&&fabs(a[i][e])>)
{
b[i]-=a[i][e]*b[l];
for(int j=;j<=n;++j)
{
if(j!=e) a[i][j]-=a[i][e]*a[l][j];
}
a[i][e]=-a[i][e]*a[l][e];
}
}
v+=c[e]*b[l];
for(int j=;j<=n;++j)
{
if(j!=e) c[j]-=c[e]*a[l][j];
}
c[e]=-c[e]*a[l][e];
} inline double simplex()
{
while()
{
int e=,l=;
for(e=;e<=n;++e)
{
if(c[e]>eps) break;
}
if(e==n+) return v;
double mn=INF;
for(int i=;i<=m;++i)
{
if(a[i][e]>eps&&mn>b[i]/a[i][e]) mn=b[i]/a[i][e],l=i;
}
if(mn==INF) return INF;
pivot(l,e);
}
} int main()
{
n=read(),m=read();
for(RI i=;i<=n;++i) c[i]=read();
for(RI i=;i<=m;++i)
{
RI k=read();
while(k--)
{
int s,t;
s=read(),t=read();
for(RI j=s;j<=t;++j) a[i][j]=1.0;
}
b[i]=read();
}
printf("%d\n",(int)(simplex()+0.5));
return ;
}
BZOJ 3265 志愿者招募加强版(单纯形)的更多相关文章
- BZOJ.3265.志愿者招募加强版(费用流SPFA)
题目链接 见上题. 每类志愿者可能是若干段,不满足那个...全幺模矩阵(全单位模矩阵)的条件,所以线性规划可能存在非整数解. 于是就可以用费用流水过去顺便拿个rank2 233. //20704kb ...
- BZOJ 3265: 志愿者招募加强版 [单纯形法]
传送门 一个人多段区间,一样.... 不过国家队论文上说这道题好像不能保证整数解.... #include <iostream> #include <cstdio> #incl ...
- BZOJ 3265 志愿者招募增强版 单
标题效果:同1061 只是间隔为每种类型的志愿工作是多级 这是卡网络流量?未知 所有在所有的1061您将可以更改为在稍微改变- - #include <cmath> #include &l ...
- BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 4813 Solved: 2877[Submit][Stat ...
- 【BZOJ1061/3265】[Noi2008]志愿者招募/志愿者招募加强版 单纯形法
[BZOJ1061][Noi2008]志愿者招募 Description 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募 ...
- bzoj3265: 志愿者招募加强版(线性规划+单纯形法)
传送门 鉴于志愿者招募那题我是用网络流写的所以这里还是写一下单纯形好了-- 就是要我们求这么个线性规划(\(d_{ij}\)表示第\(i\)种志愿者在第\(j\)天能不能服务,\(x_i\)表示第\( ...
- bzoj 1061 志愿者招募(最小费用最大流)
[Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 3792 Solved: 2314[Submit][Status][Di ...
- 突然想看单纯形 BZOJ3265 志愿者招募加强版
本来的版本是可以差分之后建图利用网络流,这个题是板子题,就当存个板子,嘻嘻嘻 讲解可以到卿学姐的算法讲堂 https://www.bilibili.com/video/av7847726?from=s ...
- bzoj 1061 志愿者招募 有上下界费用流做法
把每一天看作一个点,每一天的志愿者数目就是流量限制,从i到i+1连边,上下界就是(A[i],+inf). 对于每一类志愿者,从T[i]+1到S[i]连边,费用为招募一个志愿者的费用,流量为inf.这样 ...
随机推荐
- MySQL每个分类的前几条记录
MySQL 获取所有分类和每个分类的前几条记录 比如有文章表 Article(Id,Category,InsertDate) 现在要用SQL找出每种类型中时间最新的前N个数据组成的集合 SELECT ...
- 启动Spring Tool Suite 4时出现 could not find tools.jar spring boot live hovers....弹窗
第一步:检查一下STS启动时的加载环境 Help —› About Spring Tool Suite 4 —› Installation Details —› Configuration 本人已经 ...
- MyBatis直接执行sql语句mapper
<select id="queryBySql" resultType="HashMap"> <![CDATA[ ${sql} ]]> & ...
- [RAM] FPGA的学习笔记——RAM
1.RAM——随机存取存储器, 分为SRAM和DRAM. SRAM:存和取得速度快,操作简单.然而,成本高,很难做到很大.FPGA的片内存储器,就是一种SRAM,用来存放程序,以及程序执行过程中,产生 ...
- [LC]206题 Reverse Linked List (反转链表)(链表)
①英文题目 Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5-> ...
- [软件使用][matlab]最近经常用到的一些函数的意思,和用法
① cat(dim,A,B)按指定的维度,将A和B串联,dim是维度,比如1,2.1指列,2指行: ②numel(A),返回数组中,元素的个数 ③gpuArray(A),在gpu中产生一个数组A,一般 ...
- 【Error】Maven Dependency 下载失败问题
原文 前言 在使用Maven私服Sonatype Nexus的时候,经常会出现依赖包找不到的问题. 此时通过浏览器去私服页面查看,发现依赖包坐标是存在的,对应的文件(比如jar文件). 或者私服上面也 ...
- 领扣(LeetCode)删除排序数组中的重复项 个人题解
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...
- python变量、输入输出-xdd
1.注释 #输入身高,计算BMI 注释1,单行注释... 注释2,多行注释xiedong.. 2.中文编码声明,UTF-8编码声明 # coding=编码 # coding=utf-8 3.建议每行不 ...
- Flow入门初识
Flow是facebook出品的JavaScript静态类型检查工具. 由于JavaScript是动态类型语言,它的灵活性也会造成一些代码隐患,使用Flow可以在编译期尽早发现由类型错误引起的bug, ...