题意:

思路:

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> PII;
typedef pair<ll,ll> Pll;
typedef vector<int> VI;
typedef vector<PII> VII;
//typedef pair<ll,ll>P;
#define N 200010
#define M 200010
#define INF 1e9
#define fi first
#define se second
#define MP make_pair
#define pb push_back
#define pi acos(-1)
#define mem(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=(int)a;i<=(int)b;i++)
#define per(i,a,b) for(int i=(int)a;i>=(int)b;i--)
#define lowbit(x) x&(-x)
#define Rand (rand()*(1<<16)+rand())
#define id(x) ((x)<=B?(x):m-n/(x)+1)
#define ls p<<1
#define rs p<<1|1 const ll MOD=1e9+,inv2=(MOD+)/;
double eps=1e-;
int dx[]={-,,,};
int dy[]={,,-,}; int head[N],vet[N],len[N],nxt[N],dis[N],s,S,T,tot; int read()
{
int v=,f=;
char c=getchar();
while(c<||<c) {if(c=='-') f=-; c=getchar();}
while(<=c&&c<=) v=(v<<)+v+v+c-,c=getchar();
return v*f;
} void add(int a,int b,int c)
{
nxt[++tot]=head[a];
vet[tot]=b;
len[tot]=c;
head[a]=tot; nxt[++tot]=head[b];
vet[tot]=a;
len[tot]=;
head[b]=tot;
} bool bfs( )
{
queue<int>q;
rep(i,,s) dis[i]=-;
q.push(S),dis[S]=;
while(!q.empty())
{
int u=q.front();
q.pop();
int e=head[u];
while(e)
{
int v=vet[e];
if(len[e]>&&dis[v]==-)
{
dis[v]=dis[u]+;
q.push(v);
}
e=nxt[e];
}
}
return dis[T]!=-;
} int dfs(int u,int aug)
{
if(u==T) return aug;
int e=head[u],val=,flow=;
while(e)
{
int v=vet[e];
if(len[e]>&&dis[v]==dis[u]+)
{
int t=dfs(v,min(len[e],aug));
if(!t)
{
e=nxt[e];
continue;
}
flow+=t;
aug-=t;
len[e]-=t;
len[e^]+=t;
if(!aug) break;
}
e=nxt[e];
}
if(!flow) dis[u]=-;
return flow;
} int main()
{
int n=read(),m=read();
s=n+m;
S=++s,T=++s;
rep(i,,s) head[i]=;
tot=;
int ans=;
rep(i,,n)
{
int x;
scanf("%d",&x);
add(S,i,x);
ans+=x;
while(getchar()==' ')
{
scanf("%d",&x);
add(i,x+n,INF);
}
}
rep(i,,m)
{
int x=read();
add(i+n,T,x);
}
int tmp=;
while(bfs()) tmp+=dfs(S,INF);
ans-=tmp;
rep(i,,n)
if(dis[i]!=-) printf("%d ",i);
printf("\n");
rep(i,,m)
if(dis[i+n]!=-) printf("%d ",i);
printf("\n");
printf("%d\n",ans);
return ;
}

最新文章

  1. .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)
  2. 元素设置为display:none,其绑定的事件仍存在
  3. 外中断之swi软件中断:
  4. hdu4666 最远曼哈顿距离
  5. English - according to 的用法说明
  6. Exception in MessageQueue callback: handleReceiveCallback
  7. Android常用工具类封装---SharedPreferencesUtil
  8. 异常:cvc-complex-type.2.4.a: Invalid content was found starting with element
  9. ArcGIS 10 破解安装(win7 64位)
  10. Apple使用Apache Mesos重建Siri后端服务
  11. Thread Pools
  12. Comet OJ - Contest #1
  13. Junit/idea Junit支持/Spring test之间的孽世纠葛
  14. [大数据面试题]hadoop核心知识点
  15. 基于jmeter的性能测试平台(二) 一个构想
  16. BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点
  17. 函数, arguments对象, eval,静态成员和实例成员
  18. 实战--利用SVM对基因表达标本是否癌变的预测
  19. zabbix设置报警通知
  20. MySql检测阻塞,锁等待sql

热门文章

  1. Vijos lxhgww的奇思妙想--求K级祖先
  2. ZABBIX_PROXy
  3. 初识HTML标签
  4. [19/06/06-星期四] HTML基础_文本标签、列表(有序、无序、定义)、文本格式化(单位、字体、大小写、文本修饰、间距、对齐文本)
  5. Windows 下安装 ElasticSearch 修改 elasticsearch.yml的坑
  6. webpack4下url-loader打包图片问题
  7. C++ cin相关函数总结
  8. kafka连接器
  9. python 发送kafka
  10. HNUSTOJ 1516:Loky的烦恼