Code:

#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
const int maxn=1004;
const int INF=10000000;
# define pb push_back
int s,t;
struct Edge{
int from,to,cap;
Edge(int u,int v,int c):from(u),to(v),cap(c) {}
};
vector<Edge>edges;
vector<int>G[maxn];
struct Dicnic{
int d[maxn],vis[maxn],cur[maxn];
queue<int>Q;
void addedge(int u,int v,int c){
edges.pb(Edge(u,v,c)); //正向弧
edges.pb(Edge(v,u,0)); //反向弧
int m=edges.size();
G[u].pb(m-2);
G[v].pb(m-1);
}
int BFS()
{
memset(vis,0,sizeof(vis));
d[s]=0,vis[s]=1;Q.push(s);
while(!Q.empty()){
int u=Q.front();Q.pop();
int sz=G[u].size();
for(int i=0;i<sz;++i){
Edge e=edges[G[u][i]];
if(!vis[e.to]&&e.cap>0){
d[e.to]=d[u]+1,vis[e.to]=1;
Q.push(e.to);
}
}
}
return vis[t];
}
int dfs(int x,int a){
if(x==t)return a;
int sz=G[x].size();
int f,flow=0;
for(int i=0;i<sz;++i){
Edge e=edges[G[x][i]];
cur[x]=i;
if(d[e.to]==d[x]+1&&e.cap>0){
f=dfs(e.to,min(a,e.cap));
if(f)
{
int u=G[x][i];
a-=f;
edges[u].cap-=f;
edges[u^1].cap+=f;
flow+=f;
if(a==0)break;
}
}
}
return flow;
}
int maxflow(){
int ans=0;
while(BFS()){
memset(cur,0,sizeof(cur));
ans+=dfs(s,INF);
}
return ans;
}
}op;
int main()
{
int m,n,sum=0;
scanf("%d%d",&m,&n);
s=0,t=m+n+1;
for(int i=1;i<=m;++i)
{
int a;scanf("%d",&a);
op.addedge(s,i,a);
sum+=a;
for(int j=m+1;j<=m+n;++j)op.addedge(i,j,1);
}
for(int i=1;i<=n;++i)
{
int a;scanf("%d",&a);
op.addedge(i+m,t,a);
}
int F=op.maxflow();
if(F!=sum){printf("0\n");return 0;}
printf("1\n");
for(int u=1;u<=m;++u)
{
int sz=G[u].size();
for(int i=0;i<sz;++i)
{
int e=G[u][i];
if(e%2==0&&edges[e].cap==0)printf("%d ",edges[e].to-m);
}
printf("\n");
}
return 0;
}

  

最新文章

  1. BCD码和十六进制,十进制转换
  2. easyUI跨Tab操作datagrid
  3. SpringMVC使用@PathVariable,@RequestBody,@ResponseBody,@RequestParam,@InitBinder
  4. 海量数据处理利器之Hash——在线邮件地址过滤
  5. tsql的奇特语法
  6. 2015-2-10 Linux 知识
  7. 文明3地图之二-大n型地图
  8. 内核MKDEV(MAJOR, MINOR)宏
  9. 根据rowid回表
  10. visual studio 中GIT的用法
  11. 手机端viewport的设置规范
  12. 仿flash轮播
  13. spring cloud eureka高可用
  14. 来腾讯云开发者实验室 学习.NET
  15. 用 HAproxy 搭建 RabbitMQ 集群
  16. [国嵌攻略][155][I2C用户态驱动设计]
  17. 高级shell 脚本
  18. shell练习题2
  19. 京东饭粒捡漏V1.15
  20. 现有项目中集成Flutter

热门文章

  1. .NET XML POST 请求
  2. JPush设置别名不走成功回调的解决办法
  3. js input 只能输入数字
  4. LA 3635 Pie
  5. PhotoZoom安装之后没有快捷方式怎么解决?
  6. Element源码阅读(1)
  7. poj 2954 Triangle 三角形内的整点数
  8. Win10和子系统Ubuntu简单共享
  9. 小记如何有顺序的搭建一个Spring的web项目
  10. ASP.NET-dropdownlist默认值