二分图。

最大点权独立集=总权-最小点权覆盖集。

哪位大神能给一些二分图 最大点权独立集等等 的相关资料!!!!!跪谢

用网络流求解最小点权覆盖集即可,建图不讲了。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
using namespace std;#define min(a,b) a>b?b:a
const int maxn=2550,maxm=500000,inf=1000000000;struct Edge
{int v,f,nxt;
};int g[maxn+50];
int nume;
struct Edge e[maxm+50];
int number[70][70];
int m,n;
int src,sink;
bool vis[maxn+10];
int dist[maxn+10];void add(int u,int v,int f)
{e[++nume].v=v;e[nume].f=f;e[nume].nxt=g[u];g[u]=nume;e[++nume].v=u;e[nume].f=0;e[nume].nxt=g[v];g[v]=nume;
}bool is_n(int  y)
{if(y>=1&&y<=n) return true;return false;
}bool is_m(int x)
{if(x>=1&&x<=m) return true;return false;
}
void Init()
{int i,j;for(i=1;i<=m;i++)for(j=1;j<=n;j++){if((i+j)%2==0){add(0,(i-1)*n+j,number[i][j]);int tempy1=j-1;int tempy2=j+1;if(is_n(tempy1)) add((i-1)*n+j,(i-1)*n+tempy1,inf);if(is_n(tempy2)) add((i-1)*n+j,(i-1)*n+tempy2,inf);int tempx1=i-1;int tempx2=i+1;if(is_m(tempx1)) add((i-1)*n+j,(tempx1-1)*n+j,inf);if(is_m(tempx2)) add((i-1)*n+j,(tempx2-1)*n+j,inf);}          else add((i-1)*n+j,sink,number[i][j]);}
}void bfs()
{int i;queue<int >que;memset(dist,0,sizeof(dist));while(!que.empty()) que.pop();que.push(src);vis[src]=true;while(!que.empty()){int u=que.front();que.pop();for(i=g[u];i;i=e[i].nxt){if(e[i].f && !vis[e[i].v]){dist[e[i].v]=dist[u]+1;que.push(e[i].v);vis[e[i].v]=true;}}}
}int dfs(int u,int delta)
{int i;if(u==sink) return delta;else{int ret=0;for(i=g[u];i&δi=e[i].nxt){if(e[i].f&&dist[e[i].v]==dist[u]+1){int dd=dfs(e[i].v,min(delta,e[i].f));e[i].f-=dd;e[i^1].f+=dd;delta-=dd;ret+=dd;}}return ret;}
}
int dinic()
{int ret=0;while(true){memset(vis,0,sizeof(vis));bfs();if(!vis[sink]) return ret;ret+=dfs(src,inf);}
}int main()
{int i,j;while(scanf("%d%d",&m,&n)!=EOF){nume=1;src=0;sink=n*m+1;memset(g,0,sizeof(g));int sum=0;for(i=1;i<=m;i++)for(j=1;j<=n;j++){scanf("%d",&number[i][j]);sum+=number[i][j];}Init();printf("%d\n",sum-dinic());}return 0;
}

hdu 1569 方格取数(2) 最大点权独立集相关推荐

  1. 网络流(最大流) HDU 1565 方格取数(1) HDU 1569 方格取数(2)

    HDU 1565 方格取数(1) 给你一个n*n的格子的棋盘,每个格子里面有一个非负数. 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和 ...

  2. hdu 1565 方格取数(1)(状态压缩dp)

    方格取数(1)                                                                 Time Limit: 10000/5000 MS (J ...

  3. HDU 1565 方格取数(简单状态压缩DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=1565 对于每一个数,取或者不取,用0表示不取,1表示取,那么对于每一行的状态,就可以用一个二进制的数来表示.比如 ...

  4. HDU 1565 方格取数(1) ——插头DP

    [题目分析] 其实直接状压就可以了. 但是有点闲,又写了一个可读性极差,智商低下,很(gou)好(pi)的代码 [代码] #include <cstdio> #include <cs ...

  5. hdu 1565 方格取数(1)

    我用状态压缩做的. 一个有少于18000的合格状态,再DP 就好. #include<cstdio> #include<iostream> #include<cstrin ...

  6. HDU 1569 最大点权独立集

     最大点权独立集与最小点权覆盖是对偶问题,这里先介绍最小点权覆盖的解法. 最小点权覆盖问题是指,给出一张二分图,二分图的每个节点带有一个点权,要求从中选出若干节点,使得这些节点能够覆盖二分图中所有的 ...

  7. hdu 3657 最大点权独立集变形(方格取数的变形最小割,对于最小割建图很好的题)...

    转载:http://blog.csdn.net/cold__v__moon/article/details/7924269 /* 这道题和方格取数2相似,是在方格取数2的基础上的变形.方格取数2解法: ...

  8. [网络流][最大点权独立集] 方格取数

    预备知识: 点覆盖集:无向图G的一个点集,使得该图中所有边都至少有一个端点在该集合内. 最小点权覆盖集:在带点权无向图G中,点权之和最小的覆盖集. 点独立集:无向图G的一个点集,使得任两个在该集合中的 ...

  9. [luoguP2774] 方格取数问题(最大点权独立集)

    传送门 引入两个概念: 最小点权覆盖集:满足每一条边的两个端点至少选一个的最小权点集. 最大点权独立集:满足每一条边的两个端点最多选一个的最大权点集. 现在对网格染色,使得相邻两点颜色不同,之后把两个 ...

最新文章

  1. 使用原生JS实现简单的ajax
  2. 全国计算机三级哪个容易一点,给考三级网络的朋友们一点儿真诚的建议
  3. 从自我学习到深层网络
  4. Go开发Struct转换成map两种方式比较
  5. intp适合学计算机吗,⑨MBTI测试,分析INTP型人格的专业选择和职业选择
  6. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_24-CMS前端页面查询开发-使用钩子方法实现立即查询...
  7. 怎么把HTML转换成swf用迅雷,什么工具能把MP4格式转换成SWF并不降低画质
  8. matlab的s变换,MATLAB - Transforms
  9. 设置程序在Windows开机后自动运行的方式
  10. libvlc 裁剪及编译
  11. 台式计算机联网,【实现台式电脑无线上网的2种方法】
  12. linux sdcc stc12c5a60s2,STC12C5A60S2单片机最小系统板20个参考例程分享
  13. js超简单实现图片旋转
  14. 2020年中高级Android面试秘籍(Android基础篇)
  15. 章节十五:项目实操:PK小游戏(3)
  16. 引用数据类型和基本数据类型
  17. 一篇不错的文章--项目开发经验谈之:设计失败的挫败感
  18. 无法访问指定计算机,windows无法访问指定设备如何解决
  19. RS232转Profinet网关汽车行业上的使用案例
  20. 规律, 性质, 原则等概念, 概括解析

热门文章

  1. WinSock学习笔记
  2. Go http client 连接池不复用的问题
  3. 【智能汽车与自动驾驶】
  4. 中国公司占据VVC专利贡献榜4席
  5. MSU发布2020年度4K编码效率评测结果
  6. 通过QUIC 0-RTT建立更快的连接
  7. LiveVideoStackCon深圳-精选最新多媒体技术方案
  8. 提速 30%!腾讯TQUIC 网络传输协议
  9. 判断目录是否存在并创建mkdir
  10. npm 更改默认全局路径以及国内镜像