最裸的最大流,没啥好说的。。

#include<bits/stdc++.h>
#define LL long long
#define fi first
#define se second
#define mk make_pair
#define pii pair<int, int> using namespace std; const int N = + ;
const int M = 1e5 + ;
const int inf = 0x3f3f3f3f;
const LL INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 +; int n, m, tot, S, T, sum, head[N << ], level[N << ], a[N << ], b[N << ]; struct node {
int u, v, w, nx;
} edge[M << ]; void add(int u, int v, int w) {
edge[tot].u = u; edge[tot].v = v; edge[tot].w = w;
edge[tot].nx = head[u]; head[u] = tot++;
} bool bfs() {
memset(level, , sizeof(level));
queue<int> que;
level[S] = ; que.push(S); while(!que.empty()) {
int u = que.front(); que.pop();
if(u == T) return true; for(int i = head[u]; ~i; i = edge[i].nx) {
int v = edge[i].v;
if(level[v] || edge[i].w <= ) continue;
level[v] = level[u] + ;
que.push(v);
}
}
return false;
} int dfs(int u, int p) {
if(u == T) return p;
int ret = ;
for(int i = head[u]; ~i; i = edge[i].nx) {
int v = edge[i].v, w = edge[i].w;
if(level[v] != level[u] + || w <= ) continue;
int f = dfs(v, min(p - ret, w));
ret += f;
edge[i].w -= f;
edge[i ^ ].w += f;
if(ret == p) break;
}
if(!ret) level[u] = ;
return ret;
} int Dinic() { int ans = ;
while(bfs()) ans += dfs(S, inf);
return ans;
} void init() {
tot = ;
sum = ;
memset(head, -, sizeof(head));
} int main(){
int cas; scanf("%d", &cas);
while(cas--) {
init();
scanf("%d%d", &n, &m); S = , T = n + m + ;
for(int i = ; i <= n; i++) {
scanf("%d", &a[i]);
add(i, T, a[i]);
add(T, i, );
sum += a[i];
} for(int i = ; i <= m; i++) {
scanf("%d", &b[i]);
add(S, i + n, b[i]);
add(i + n, S, );
} for(int i = ; i <= m; i++) {
int k; scanf("%d", &k);
for(int j = ; j <= k; j++) {
int id; scanf("%d", &id);
add(i + n, id, inf);
add(id, i + n, );
}
} int ans = Dinic();
printf("%d\n", sum - ans);
}
return ;
} /*
*/

牛客练习赛19 D-托米去购物的更多相关文章

  1. 牛客练习赛 23 C 托米的位运算

    链接:https://www.nowcoder.com/acm/contest/156/C来源:牛客网 托米完成了1317的上一个任务,十分高兴,可是考验还没有结束 说话间1317给了托米 n 个自然 ...

  2. 牛客练习赛19 E和F(签到就走系列)托米的饮料+托米搭积木

    E题传送门:点我 F题传送门:点我 可爱的小托米得到了n瓶饮料. 但他不小心把开盖的工具弄丢了,所以他只能利用饮料瓶来开盖. 已知第i个瓶子的品牌为ai,且其能打开bi品牌的瓶子. 问有几瓶饮料托米无 ...

  3. 牛客练习赛19 -E-托米的饮料

    题目描述 好了,现在是小托米的故事啦~~~ 可爱的小托米得到了n瓶饮料. 但他不小心把开盖的工具弄丢了,所以他只能利用饮料瓶来开盖. 已知第i个瓶子的品牌为ai,且其能打开bi品牌的瓶子. 问有几瓶饮 ...

  4. 牛客练习赛23 F 托米的游戏

    https://www.nowcoder.com/acm/contest/156/F 树 概率 #include <cstdio> #include <cstdlib> #in ...

  5. 牛客练习赛19 C-托米航空公司

    思路:轮廓线dp,找bug找死我了. #include<bits/stdc++.h> #define LL long long #define fi first #define se se ...

  6. 牛客练习赛22 C 简单瞎搞题

    //位运算 // & 都是1 才是 1 // | 都是0 才是0 // ^ 不一样才是1 #include <iostream> #include <cstdio> # ...

  7. [堆+贪心]牛客练习赛40-B

    传送门:牛客练习赛40 题面: 小A手头有 n 份任务,他可以以任意顺序完成这些任务,只有完成当前的任务后,他才能做下一个任务 第 i 个任务需要花费  x_i 的时间,同时完成第 i 个任务的时间不 ...

  8. 牛客练习赛 29 E 位运算?位运算!(线段树)

    题目链接  牛客练习赛29E 对$20$位分别建立线段树.首先$1$和$2$可以合起来搞(左移右移其实是等效的) 用个lazy标记下.转移的时候加个中间变量. $3$和$4$其实就是区间$01$覆盖操 ...

  9. 牛客练习赛50 D tokitsukaze and Event (最短路,思维)

    牛客练习赛50 D tokitsukaze and Event 链接:https://ac.nowcoder.com/acm/contest/1080/D来源:牛客网 时间限制:C/C++ 1秒,其他 ...

随机推荐

  1. python学习(十七) 爬取MM图片

    这一篇巩固前几篇文章的学到的技术,利用urllib库爬取美女图片,其中采用了多线程,文件读写,目录匹配,正则表达式解析,字符串拼接等知识,这些都是前文提到的,综合运用一下,写个爬虫示例爬取美女图片.先 ...

  2. C++构造函数和析构函数顺序

    构造函数    先看看构造函数的调用顺序规则,只要我们在平时编程的时候遵守这种约定,任何关于构造函数的调用问题都能解决:构造函数的调用顺序总是如下:1.基类构造函数.如果有多个基类,则构造函数的调用顺 ...

  3. IBatisNet+Oracle.ManagedDataAccess打造无需安装oracle客户端和ODP即可连接oracle数据库

    库环境: Oracle.ManagedDataAccess 版本:4.122.1.0 IBatisNet  版本:1.6.2 其实很简单的,只需在驱动配置那里添加上Oracle.ManagedData ...

  4. 图论&动态规划:虚树

    虚树可以看做是对树形动态规划的一种求解优化 对于需要求答案的点p,只保留对答案有影响的节点,从而减少时间 BZOJ2286 dp[i]=min(val[i],Σdp[j](j为i的儿子)),val[i ...

  5. HTML入门(三)后台系统显示页面_框架标签

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. BestCoder Round #41 记。

    大概整个过程都是很绝望的吧. 发现自己在七点之前是肯定搞不定网了..有冲动跑到机房去打 但是又不喜欢那样的气氛 这可是shi的场呢...好难过啊... 后来..好像是在和lyd讨论怎么把网络复原的过程 ...

  7. js关闭当前页面跳转新页面

    页面代码: <p class="info"><span style="font-weight: bold">所属项目:</span ...

  8. 如何在移动端app中应用字体图标icon fonts

    How to use icon fonts in your mobile apps 在任何APP设计中实现可图形的矢量缩放最完美的方式是使用字体图标. 移动端的设计变的越来越复杂.原因在于多样的屏幕尺 ...

  9. VC调用易语言DLL

    易语言方面: .版本 .子程序 show, , 公开 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中. ***注意不 ...

  10. 【IDEA】IDEA设置新建文件的模板

    今天在IDEA中新建JS文件的时候想着也像WebStorm一样可以显示作者和时间,所以就研究了下在IDEA中修改文件创建时的模板. 点击settings找到File and Code Template ...