建图同_____

代码:

 #include<queue>
#include<cstdio>
#include<cstring>
#include<algorithm>
const int oo=0x3f3f3f3f;
struct pnt{
int hd;
int lyr;
int now;
}p[];
struct ent{
int twd;
int lst;
int vls;
}e[];
int k,n;
int s,t;
int cnt;
int sum;
std::queue<int>Q;
void ade(int f,int t,int v)
{
cnt++;
e[cnt].twd=t;
e[cnt].vls=v;
e[cnt].lst=p[f].hd;
p[f].hd=cnt;
return ;
}
bool Bfs(void)
{
while(!Q.empty())
Q.pop();
for(int i=;i<=t;i++)
p[i].lyr=;
p[s].lyr=;
Q.push(s);
while(!Q.empty())
{
int x=Q.front();
Q.pop();
for(int i=p[x].hd;i;i=e[i].lst)
{
int to=e[i].twd;
if(p[to].lyr==&&e[i].vls>)
{
p[to].lyr=p[x].lyr+;
if(to==t)
return true;
Q.push(to);
}
}
}
return false;
}
int Dfs(int x,int fll)
{
if(x==t)
return fll;
for(int& i=p[x].now;i;i=e[i].lst)
{
int to=e[i].twd;
if(p[to].lyr==p[x].lyr+&&e[i].vls>)
{
int ans=Dfs(to,std::min(fll,e[i].vls));
if(ans>)
{
e[i].vls-=ans;
e[((i-)^)+].vls+=ans;
return ans;
}
}
}
return ;
}
int Dinic(void)
{
int ans=;
while(Bfs())
{
int dlt;
for(int i=;i<=t;i++)
p[i].now=p[i].hd;
while(dlt=Dfs(s,oo))
ans+=dlt;
}
return ans;
}
int main()
{
//freopen("a.in","r",stdin);
scanf("%d%d",&k,&n);
s=k+n+;
t=s+;
for(int i=;i<=k;i++)
{
int v;
scanf("%d",&v);
sum+=v;
ade(i,t,v);
ade(t,i,);
}
for(int i=;i<=n;i++)
{
int p;
scanf("%d",&p);
ade(s,i+k,);
ade(i+k,s,);
for(int j=;j<=p;j++)
{
int tp;
scanf("%d",&tp);
ade(i+k,tp,);
ade(tp,i+k,);
}
}
int tot=Dinic();
if(tot!=sum)
{
printf("No Solution!\n");
return ;
}
for(int i=;i<=k;i++)
{
printf("%d:",i);
for(int j=p[i].hd;j;j=e[j].lst)
{
int to=e[j].twd;
if(to!=t&&e[j].vls>)
printf(" %d",to-k);
}
puts("");
}
return ;
}

最新文章

  1. 使用block进行界面之间的反向传值
  2. 用jsonp格式的数据进行ajax post请求变成get
  3. 可以用WMI来获取磁盘及分区编号
  4. I.MX6 linux Qt 同时支持Touch、mouse
  5. Standalone HBase
  6. Hadoop单机模式安装
  7. Java基础知识强化46:StringBuffer类之判断一个字符串是否对称案例
  8. JQuery window、document、 body
  9. 英文:known good assembly(KGA) / 中文:确认好的组装件,已知好组装件
  10. Spring事务管理的两种方式
  11. 在VS2017下配置OpenGL
  12. 第二章 python的介绍及变量
  13. jupyter notebook中使用mpld3进行交互
  14. CCPC-Wannafly Winter Camp Day4 G---置置置换【递推】【组合数】【逆元】
  15. python基础知识-11-函数装饰器
  16. bzoj4815[CQOI2017]小Q的格子
  17. delphi crc校验函数
  18. void f(int(&amp;amp;p)[3]){} 和void f(int(*p)[3]){}的差别
  19. sap人员编制
  20. SQL查询性能优化

热门文章

  1. [JSOI2007]建筑抢修 优先队列 贪心
  2. 在 yii2.0 框架中封装导出html 表格样式 Excel 类
  3. scrapy xpath选择器多级选择错误
  4. 一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)
  5. PKU 2411 Mondriaan&#39;s Dream 状态DP
  6. 从零開始学android&amp;lt;SlidingDrawer 隐式抽屉.三十三.&amp;gt;
  7. 关于App程序猿泡沫
  8. ASIHTTPRequest导入出错-libxml出错, i386 &quot;_deflate&quot;
  9. 17. IntelliJ IDEA + Maven创建Java Web项目
  10. AngularJS初接触