HIT_2634

将S和项目相连,容量为收益,将人和T相连,容量为雇佣的花费,然后将项目和所需的人连起来,容量为INF。实际上我们最后需要的一个结果就是这个图的割:从S出发能到达的点就是我们要做的项目和雇佣的人,能够到达T的点就是不必做的项目和不必雇佣的人。

因为割对应的是不做某些项目以及雇佣某些人,反映的类似“损失”的概念,因此要让这部分“损失”最小,因此求原图的最小割即可。

#include<stdio.h>
#include<string.h>
#include<algorithm>
#define MAXD 210
#define MAXM 20310
#define INF 0x3f3f3f3f
int M, N, first[MAXD], e, next[MAXM], v[MAXM], flow[MAXM];
int S, T, SUM, d[MAXD], q[MAXD], work[MAXD];
void add(int x, int y, int z)
{v[e] = y, flow[e] = z;next[e] = first[x], first[x] = e ++;
}
void init()
{int i, j, x, n;scanf("%d%d", &M, &N);S = 0, T = M + N + 1;memset(first, -1, sizeof(first[0]) * (T + 1));e = 0;SUM = 0;for(i = 1; i <= M; i ++){scanf("%d", &x), SUM += x;add(S, i, x), add(i, S, 0);    }for(i = 1; i <= N; i ++){scanf("%d", &x);add(M + i, T, x), add(T, M + i, 0);}for(i = 1; i <= M; i ++){scanf("%d", &n);for(j = 0; j < n; j ++){scanf("%d", &x);add(i, M + 1 + x, INF), add(M + 1 + x, i, 0);}}
}
int bfs()
{int i, j, rear = 0;memset(d, -1, sizeof(d[0]) * (T + 1));d[S] = 0, q[rear ++] = S;for(i = 0; i < rear; i ++)for(j = first[q[i]]; j != -1; j = next[j])if(flow[j] && d[v[j]] == -1){d[v[j]] = d[q[i]] + 1, q[rear ++] = v[j];if(v[j] == T) return 1;    }return 0;
}
int dfs(int cur, int a)
{if(cur == T)return a;int t;for(int &i = work[cur]; i != -1; i = next[i])if(flow[i] && d[v[i]] == d[cur] + 1)if(t = dfs(v[i], std::min(a, flow[i]))){flow[i] -= t, flow[i ^ 1] += t;return t;    }return 0;
}
int dinic()
{int ans = 0, t;while(bfs()){memcpy(work, first, sizeof(first[0]) * (T + 1));while(t = dfs(S, INF))ans += t;    }return ans;
}
void solve()
{printf("%d\n", SUM - dinic());
}
int main()
{int t;scanf("%d", &t);while(t --){init();solve();    }return 0;
}

HIT 2634 How to earn more相关推荐

  1. HOJ题目分类//放这儿没事刷刷学算法!嘻嘻!

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  2. 最大权闭合子图(最小割)

    最大权闭合子图(最大流最小割) •参考资料 [1]最大权闭合子图 •权闭合子图 存在一个图的子图,使得子图中的所有点出度指向的点依旧在这个子图内,则此子图是闭合子图. 在这个图中有8个闭合子图:∅,{ ...

  3. 网络流建模汇总(转自Edelweiss)

    最大流 <POJ 1149    PIGS> [题目大意] 有 M 个猪圈,每个猪圈里初始时有若干头猪.一开始所有猪圈都是关闭的.依 次来了 N  个顾客,每个顾客分别会打开指定的几个猪圈 ...

  4. Buffer Cache Hit Ratio

    Solution By itself, the buffer cache hit ratio is not very meaningful except for databases with unde ...

  5. 哈尔滨工业大学计算机学院官网,哈尔滨工业大学计算机学院 唐好选 tanghx@hope.hit...

    哈尔滨工业大学计算机学院 唐好选 tanghx@hope.hit View 125 Download 0 Embed Size (px) 344 x 292429 x 357514 x 422599 ...

  6. OpenCV Hit or Miss 击中或没打中的实例(附完整代码)

    OpenCV Hit or Miss 击中或没打中的实例 OpenCV Hit or Miss 击中或没打中的实例 OpenCV Hit or Miss 击中或没打中的实例 #include < ...

  7. HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)...

    HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题) Description T ...

  8. 6.OD-Run trace /Hit trace

    Run trace可以把被调试程序执行过的指令保存下来,了解以前发生的事件,它能把地址.寄存器的内容.消息等记录到Run trace缓冲区中,在运行Run trace前,要把缓冲区设置大些,否则执行的 ...

  9. OD的hit跟踪和run跟踪

    在OD的CPU窗里和查看菜单和调试菜单里面都可以看到相应的菜单,谈谈这些功能是干什么的. 1.hit跟踪是记录汇编指令运行脚印的,一个子程序可能会有很多跳转,这些跳转在程序实际运行中哪些跳转跳了哪些跳 ...

最新文章

  1. css中display设置为table、table-row、table-cell后的作用及其注意点
  2. mysql表收缩时从库也收缩么_收缩数据库 - SQL Server | Microsoft Docs
  3. Java中List.remove报UnsupportedOperationException异常
  4. Android实现电蚊香/Service服务管理类
  5. SAP Hybris Commerce的页面路由实现
  6. java查询多条_Mybatis查询多条记录并返回List集合的方法
  7. DOS 命令、必会的 10个 DOS 命令
  8. 【OpenCV 例程200篇】78. 频率域图像滤波基础
  9. MySQL中的常用函数
  10. -3dB下的正确率是100%!!!
  11. python爬虫步骤-python爬虫步骤 (新手备学 )爬虫编程。
  12. 数学建模笔记——评价类模型(一)
  13. SVN更新(update)文件时,报skipped, remains conficted时的解决办法
  14. 从零开发短视频电商 隐藏业务ID以及缩短业务链接
  15. 询问HTG:Android版本,同时的耳机和扬声器声音以及iPad文件加载
  16. Uber无模式数据存储
  17. 投身大数据领域,你对flink培训课程付出足够多的努力了吗?
  18. 申报山西省“专精特新”中小企业需要具备哪些条件?
  19. JEECG框架-如何使用前端代码判重?( duplicateCheck 表单字段重复校验通用JS)
  20. FATE学习:配置文件解析及V1/V2版本对比

热门文章

  1. android给后台传递json,将服务中的JSON数据发送到Android中的UI
  2. mysql主从异步复制_centos7mysql主从复制(默认异步)
  3. 安顺那里有学计算机,安顺计算机专业学费
  4. Django数据库开发思想与OPM
  5. 在liferay strut2中如何使用session
  6. mybatis的typeAliases别名
  7. Nginx——debug的使用
  8. 摘录HTTP头部信息的注释
  9. DOS 网络命令之 ipconfig
  10. python扫盲系列(5)--列表、元组、字典、集合