【HDOJ5556】Land of Farms(最大团)】的更多相关文章

Land of Farms Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 539    Accepted Submission(s): 177 Problem Description Farmer John and his brothers have found a new land. They are so excited and d…
题意:给定n*m的网格图,上面只有字符'.' 和 数字0-9.其中数字表示这是该格是古老的土地,字符'.'表示该格只是普通的土地. 可以认为一块古老的农田由四联通的所有数字相同的格组成的块,一块普通的农田只由一格组成. 现在要建立最大数目的农田,要求任意两块农田不能相邻.问你能够建立的最大数目. n,m<=10 思路:把四联通的同一个数字缩成一个,每个字符.当做单独的一个,按照相邻四联通情况建图 这样建出来的图不一定是二分图,变成了一个一般图最大独立集问题 考虑一般图最大独立集=建反图后最大团大…
Farmer John and his brothers have found a new land. They are so excited and decide to build new farms on the land. The land is a rectangle and consists of N×MN×Mgrids. A farm consists of one or more connected grids. Two grids are adjacent if they sha…
题意 一个\(N*M\)的矩阵,其中"."代表空地,"0-9"代表古代建筑,我们如果选择了一个编号的古代建筑想要建立,那么对应就要将全部该编号的建筑建立起来,如果在空地上建筑,只建立当前点.问最多能够建立多少种建筑,并且每两种建筑之间没有公共边. 分析 注意了,古代建筑的公共边是他的事,你不能选两个相邻的古代建筑.那么,我们把古代建筑抽象成一个点, 把剩下的各个现代的农场块抽象成各个点,给曼哈顿距离为1的块连一条边,那么这条题目就成了在这个新图上找图的最大独立集(注…
容易想到将问题转化为求图的独立数问题 ,但求一般图的独立集是一个NPC问题,需要一些转化. 状态压缩,枚举每个上古农场是否选择,然后将剩下的新农场根据i + j奇偶性分为x , y集. 结果为 max(tot  + nx + ny - 二分图匹配数) #include<cstdio> #include<iostream> #include<cstdlib> #include<cstring> #include<string> #include&l…
我对于题目的一种理解 改造农场 1.建新农场 在空的点选 2.重建旧农场 选一个点属于这个农场的地方都要选 最后的农场都不能相连 所以枚举旧农场的个数并进行二分图匹配 #include<bits/stdc++.h> using namespace std; int N,M; char mp[12][12]; vector<pair<int,int> > farm[12]; int has[12]; int dir[5][5] = { {1,0}, {0,1}, {-1,…
  这是什么奇怪的名字qwq. 一些定义   只为便于理解,没有苛求专业的定义. 简单无向图:不存在重边.自环的无向图. \(\delta(G)\):无向图 \(G\) 中结点的最小度数.即 \(\min\{d(u)|u\in V\}\). 完全图:两两结点都有且仅有一条直接连边的无向图.拥有 \(n\) 个结点的完全图记作 \(K_n\). 团:\(G\) 的生成子图且为完全图. 最大团:是团且结点数最大. 由于没有找到类似的定义,我们定义 \(M(G)\) 为 \(G\) 的最大团的结点数.…
序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定可用,平复人心. 由于我们的后台业务,清一色都是.net应用程序,加上总监的一致推荐,我们的负载均衡其中一个方案就选用了微软与iis集成的反向代理Application Request Route.Application Request Route,配置使用简单,并且运行情况可见,也确实是微软一款很…
坏味道--数据泥团(Data Clumps) 特征 有时,代码的不同部分包含相同的变量组(例如用于连接到数据库的参数).这些绑在一起出现的数据应该拥有自己的对象. 问题原因 通常,数据泥团的出现时因为糟糕的编程结构或"复制-粘贴式编程". 有一个判断是否是数据泥团的好办法:删掉众多数据中的一项.这么做,其他数据有没有因而失去意义?如果它们不再有意义,这就是个明确的信号:你应该为它们产生一个新的对象. 解决方法 首先找出这些数据以字段形式出现的地方,运用 提炼类(Extract Clas…
最近迷上了“海贼王”这部动画片,不仅仅是因为其中的人物个个性格鲜明,剧情跌宕起伏扣人心弦,各种耍宝搞笑,还感觉到这个团队很像理想中的敏捷软件团队. 作为一直带团队的我,感觉“海贼王”这个动画片给了我很多启示,而且相信“软件海贼团”这个概念应该也是我第一个提出来的,有发扬光大的可能,很是兴奋,决定写下此文来介绍下软件团队可以从海贼团队中学到点什么. 还没怎么整理,可能文章上很粗糙请见谅. 团队名称,标志 名称和标志是使他人识别你的最容易的方法 海贼 : 每个海贼团都有自己的名称,标志,比方说“海贼…