分析:

费用流裸题,按照题面要求建边就可以了,语文题,我读了10多分钟才知道这题干啥...特别是注意一个细节a[j+1]-a[j]...

附上代码:

#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <iostream>
#include <queue>
#include <cstdlib>
using namespace std;
#define N 555
#define S 0
#define T 550
struct node
{int to,next,val,flow,from;
}e[N*N<<5];
int head[N],cnt,vis[N],from[N],n,m,map[N][N],s[N],a[N];long long ans,dis[N];
void add(int x,int y,int z,int f){e[cnt].to=y;e[cnt].next=head[x];e[cnt].from=x;e[cnt].val=z;e[cnt].flow=f;head[x]=cnt++;}
void insert(int x,int y,int z,int f){add(x,y,z,f);add(y,x,-z,0);}
int spfa()
{memset(vis,0,sizeof(vis));memset(dis,0x3f,sizeof(dis));memset(from,-1,sizeof(from));queue <int>q;q.push(S);dis[S]=0;while(!q.empty()){int x=q.front();q.pop();vis[x]=0;for(int i=head[x];i!=-1;i=e[i].next){int to1=e[i].to;if(dis[to1]>dis[x]+e[i].val&&e[i].flow){from[to1]=i;dis[to1]=dis[x]+e[i].val;if(!vis[to1])vis[to1]=1,q.push(to1);}}}return dis[T]==0x3f3f3f3f3f3f3f3f?0:1;
}
void mcf()
{int i=from[T],x=1<<30;while(i!=-1){x=min(x,e[i].flow);i=from[e[i].from];}i=from[T];while(i!=-1){e[i].flow-=x,e[i^1].flow+=x;ans+=e[i].val*x;i=from[e[i].from];}return ;
}
int main()
{memset(head,-1,sizeof(head));scanf("%d%d",&m,&n);for(int i=1;i<=n;i++){int x;scanf("%d",&x);insert(i+m,T,0,x);}for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){int x;scanf("%d",&x);if(x)insert(i,j+m,0,1<<30);}}for(int i=1;i<=m;i++){scanf("%d",&s[i]);for(int j=1;j<=s[i];j++){scanf("%d",&a[j]);}a[s[i]+1]=1<<30;for(int j=0;j<=s[i];j++){int x;scanf("%d",&x);insert(S,i,x,a[j+1]-a[j]);}}while(spfa())mcf();printf("%lld\n",ans);return 0;
}

  

转载于:https://www.cnblogs.com/Winniechen/p/9128618.html

[SDOI2011]工作安排 BZOJ2245相关推荐

  1. 【BZOJ2245】[SDOI2011]工作安排 拆边费用流

    [BZOJ2245][SDOI2011]工作安排 Description 你的公司接到了一批订单.订单要求你的公司提供n类产品,产品被编号为1~n,其中第i类产品共需要Ci件.公司共有m名员工,员工被 ...

  2. bzoj2245 [SDOI2011]工作安排

    (http://www.elijahqi.win/2017/12/11/bzoj2245-sdoi2011%E5%B7%A5%E4%BD%9C%E5%AE%89%E6%8E%92/%20%E2%80% ...

  3. 【bzoj2245】[SDOI2011]工作安排 费用流

    题目描述 你的公司接到了一批订单.订单要求你的公司提供n类产品,产品被编号为1~n,其中第i类产品共需要Ci件.公司共有m名员工,员工被编号为1~m员工能够制造的产品种类有所区别.一件产品必须完整地由 ...

  4. bzoj2245 [SDOI2011]工作安排 费用流

    注意这里的分段函数只和个数有关,与种类无关, 然后直接建图,注意开long long 码: #include<iostream> #include<cstdio> #inclu ...

  5. BZOJ2245: [SDOI2011]工作安排

    题目链接 [分析] 先吐槽:题目读的真的烦..刚开始理解错了题意算出来答案怎么都不对还不知道哪里错了..中午回家才想出来..真的是勺的掺. 其实这个题还是很裸的费用流..看懂题就好. [建图] S向每 ...

  6. bzoj 2245 [SDOI2011]工作安排【最小费用最大流】

    其实不用拆点,对于每个人我们假装他是\( s[i]+1 \)个点,可以由他向T点分别连\( s[i]+1 \)条边,容量为\( t[i][j]-t[i][j-1]\),由S点向所有产品i连容量为c[i ...

  7. [BZOJ1572][Usaco2009 Open]工作安排Job

    1572: [Usaco2009 Open]工作安排Job Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1351  Solved: 632 [Sub ...

  8. 麦肯锡顾问深度工作安排:将工作可视化

    工作表安排的三个步骤 凡是善于工作的人,都有一个共通的方法,那就是他们能够有意识或者无意识地使自己的整体工作可视化. 商业系统型的工作安排法: 流程:为了创造价值明确工作的整体流程 分解:将整体流程分 ...

  9. 综合布线工作组2008年上半年技术课题工作安排会议通知

    中国工程建设标准化协会信息通信专业委员会   建标信通字[2008] 02号 综合布线工作组2008年上半年技术课题工作安排会议通知   各工作组成员 中国工程建设标准化协会信息通信专业委员会综合布线 ...

最新文章

  1. 2019 ICPC EC Finals C. Heretical … Möbius(中国剩余定理,序列检验)
  2. 网络营销外包——网络营销外包专员是怎样提升网站收录概率的?
  3. 一些stl格式的点云的显示结果
  4. 凭借识别人的情绪,他们做到了2000多万用户、1000多万订单
  5. 使用Nginx实现灰度发布
  6. 针对SAP OData 模型Addresssable属性的不同处理
  7. C#查找指定窗口的子窗口的句柄
  8. rebots css,我的robots.txt中涉及到.htaccss文件的奇怪https/http错误
  9. (转)国外优秀区块链创业公司梳理
  10. Oracle数据库安装教程
  11. 用html代码制作一个表单页面,HTML网页表单制作详细讲解
  12. 【读书笔记】--少有人走的路①:心智成熟的旅程
  13. 揭秘无聊程序猿的趣味人生|斑鸠职业
  14. 《一个广告人的自白》读书笔记
  15. 过cloudflare,使用cfscrape,以及cfscrape挂代理的方式
  16. 女子租房有钱交房租 男中介竟然不收她钱_无界财富
  17. 掌握聚合管道操作,熟悉Map-Reduce操作
  18. 2022年最新云开发去水印小程序源码
  19. js正则表达式(2)
  20. 实时音视频是什么?有哪些新的应用场景

热门文章

  1. 数组求和forEach方法
  2. MySQL的InnoDB和MyISAM比较
  3. extjs4动态生成多表头
  4. Apple Mac OS X每日一技巧016:MacBook电源线如何缠绕
  5. Android 完全退出应用程序实现代码
  6. Vue过渡 动画---vue工作笔记0014
  7. JAVA线程池_并发队列工作笔记0003---线程池的分类_可缓存线程池_定长线程池_定时线程池_单例线程池
  8. MFC工作笔记0001---认识MFC
  9. STM32工作笔记0036---C语言复习--寄存器地址名称映射
  10. 网络加速 java_快速入门之:使用 dragonite forwarder 加速 Shadowsocks 连接