博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 2987 最大闭合子图
阅读量:4598 次
发布时间:2019-06-09

本文共 1656 字,大约阅读时间需要 5 分钟。

思路:

这题考的是最大闭权图。只要知道怎么求最大闭权图就知道怎么做。但好像有点卡模版,要高效的模版才行。

#include 
#include
#include
#define Maxn 6010#define Maxm 200000#define LL __int64#define Abs(a) (a)>0?(a):(-a)using namespace std;struct Edge{ int from,to,next; LL val;}edge[Maxm];LL value[Maxn],inf=0;int index[Maxn],work[Maxn],dis[Maxn],q[Maxn],e,vi[Maxn];inline void addedge(int from,int to,LL val)//有向边{ edge[e].from=from; edge[e].to=to; edge[e].val=val; edge[e].next=index[from]; index[from]=e++; edge[e].from=to; edge[e].to=from; edge[e].val=0; edge[e].next=index[to]; index[to]=e++;}void init(){ e=0; memset(index,-1,sizeof(index)); memset(vi,0,sizeof(vi)); inf=0;}void add(int u,int v,LL c){ edge[e].to=v;edge[e].val=c;edge[e].next=index[u];index[u]=e++; edge[e].to=u;edge[e].val=0;edge[e].next=index[v];index[v]=e++;}void DFS(int u){ vi[u]=1; int i,v; for(i=index[u];i!=-1;i=edge[i].next) if(edge[i].val&&!vi[edge[i].to]) DFS(edge[i].to);}int bfs(int S,int T){ int rear=0; memset(dis,-1,sizeof(dis)); dis[S]=0;q[rear++]=S; for(int i=0;i
0) { sum+=value[i]; addedge(0,i,value[i]); } else addedge(i,n+1,-value[i]); inf+=Abs(value[i]); } inf++; for(i=1;i<=m;i++) { scanf("%d%d",&a,&b); addedge(a,b,inf); } LL ans=Dinic(0,n+1);//起始点和结束点 //DFS(0);//寻找S集合 int num=0; for(i=1;i<=n;i++) if(dis[i]>=0) num++; printf("%d %I64d\n",num,sum-ans); return 0;}

 

 

转载于:https://www.cnblogs.com/wangfang20/p/3205073.html

你可能感兴趣的文章
20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
查看>>
NCPC 2015 - Problem A - Adjoin the Networks
查看>>
How to lisp Lisp output a paragraph"500 Tph Dry Process Cement Plant Machinery Manufacturers"
查看>>
更改chrome浏览器css背景为护眼色,更改字体为微软雅黑。
查看>>
Unix系统编程()文件描述符和打开文件之间的关系
查看>>
ASP.NET AJAX Calling Web Service
查看>>
Connecting Windows Mobile device emulators to the Internet without ActiveSync
查看>>
英文词频统计说明
查看>>
C++的new、delete需要注意的一点:使用危险函数导致的越界
查看>>
js执行过程
查看>>
Laravel5.1学习笔记15 数据库1 数据库使用入门
查看>>
nodejs express搭建一个网站整理
查看>>
POJ 2373 Dividing the Path(DP + 单调队列)
查看>>
(转)3ds Max 和 Away3D工作流程
查看>>
STL: distance, unique
查看>>
[Markdown] 03 进阶语法 第一弹
查看>>
使用HashMap编写一程序实现存储某班级学生信息
查看>>
Mvc多级Views目录 asp.net mvc4 路由重写及 修改view 的寻找视图的规则
查看>>
spring整合redis
查看>>
GitLab Runner and CICD
查看>>