当前位置: 首页 > news >正文

网站 弹出网络安全公司排名前十名

网站 弹出,网络安全公司排名前十名,湖南网站建设公司 要上磐石网络,济南便宜网站设计题义很简单#xff0c;还记得方格取数(1)的时候#xff0c;使用状态压缩写的#xff0c;这里由于行列数太大#xff0c;因此无法进行压缩。所以要运用的最小割最大流的思想来解这道题。 大概是这样分析的#xff0c;题义是要我们求在一个方格内取出N个点#xff0c;使得这…  题义很简单还记得方格取数(1)的时候使用状态压缩写的这里由于行列数太大因此无法进行压缩。所以要运用的最小割最大流的思想来解这道题。   大概是这样分析的题义是要我们求在一个方格内取出N个点使得这N个独立的不相邻点集的和最大。我们可以将问题转化为最小割来求解。首先我们将方格进行黑白相间的染色然后再将任意一种颜色黑色作为源点一种颜色白色作为汇点。我们的算法过程就是一个不断寻找增广路的过程。当我们找到最大流的时也就是此时不存在从黑色到白色的路径也即不存在不相邻的两个方格能够连通了。而此时的最大流就是分割两个区间的最小割拿总合值减去这个最小割就是我们想要得到的结果。   代码如下 #include cstring #include cstdlib #include cstdio #include queue #define RE(x) (x)^1 #define INF 0x3fffffff #define MAXN 50 using namespace std;int N, M, dis[MAXN*MAXN10], head[MAXN*MAXN10], idx, source, sink; int G[MAXN10][MAXN10];int dir[4][2] {0, 1, 1, 0, 0, -1, -1, 0};struct Edge {int v, cap, next; }e[200000];void init() {idx -1;source N*M, sink N*M1;memset(head, 0xff, sizeof (head)); }int to(int x, int y) {return (x-1)*My-1; }void insert(int a, int b, int c) {idx;e[idx].v b, e[idx].cap c;e[idx].next head[a], head[a] idx; }bool judge(int x, int y) {if (x 1 || x N || y 1 || y M) {return false;}else {return true;} }bool bfs() {int u;queueintq;memset(dis, 0xff, sizeof (dis));dis[source] 0;q.push(source);while (!q.empty()) {u q.front();q.pop();for (int i head[u]; i ! -1; i e[i].next) {if (dis[e[i].v] -1 e[i].cap 0) {dis[e[i].v] dis[u] 1;q.push(e[i].v);}}}return dis[sink] ! -1; }int dfs(int u, int flow) {if (u sink) {return flow;}int tf 0, sf;for (int i head[u]; i ! -1; i e[i].next) {if (dis[u]1 dis[e[i].v] e[i].cap 0 (sf dfs(e[i].v, min(flow-tf, e[i].cap)))) {e[i].cap - sf, e[RE(i)].cap sf;tf sf;if (tf flow) {return flow;}}}if (!tf) {dis[u] -1;}return tf; }int Dinic() {int ans 0;while (bfs()) {ans dfs(source, INF);}return ans; }int main() {int sum;while (scanf(%d %d, N, M) 2) {sum 0;init();for (int i 1; i N; i) {for (int j 1; j M; j) {scanf(%d, G[i][j]);sum G[i][j];}}for (int i 1; i N; i) {for (int j 1; j M; j) {if (!((ij)1)) { insert(source, to(i, j), G[i][j]);insert(to(i, j), source, 0);for (int k 0; k 4; k) {int xx idir[k][0], yy jdir[k][1]; if (judge(xx, yy)) {insert(to(i, j), to(xx, yy), G[i][j]);insert(to(xx, yy), to(i, j), 0);}}} else {insert(to(i, j), sink, G[i][j]);insert(sink, to(i, j), 0);}}}printf(%d\n, sum - Dinic());}return 0; }
http://www.yutouwan.com/news/207453/

相关文章:

  • 建设银行网站百度一下移动网上购物网站开发
  • 山东济南seo整站优化费用传媒公司网站
  • 做网站的体会那些网站是做金融行业
  • 网站开发网站运营怎么做河南安阳市滑县
  • 奇网企业网站管理系统统一门户网站
  • 网站营销推广策划书广州手机网站建设报价表
  • 建设银行车主卡网上交罚款网站沈阳网站建设哪家便宜
  • 网站如何创建首页百度推广入口登录
  • seo综合苏州seo优化排名推广
  • 建设网站网址是多少跟黄聪学WordPress主题开发
  • 杭州网站建设报价网站文件服务器
  • 做与食品安全有关的网站百度助手下载
  • 国外做螺栓比较好的网站注册账号验证码平台
  • 手表哪个网站正品网络营销热点事件案例分析
  • 襄阳网站建设哪家好珠海市住房和建设局网站
  • h5网站开发公司张家口专业做网站公司
  • 华西医院网站开发WordPress站点添加ssl证书
  • 网站怎样制作广州建筑集团股份有限公司
  • 农家乐网站设计国外做饮用来源的网站
  • 宁夏免费建个人网站海外网站制作
  • 网站构成的基本结构大型门户网站开发
  • 关键词分类浙江seo推广
  • 一点科技官方网站网站开发网站开发设计
  • 安徽省建设部网站官网wordpress 插件卸载
  • 智趣游戏型网站开发微信公众平台小程序怎么用
  • 小程序模板代码个人如何优化网站有哪些方法
  • 甘肃金恒大建设有限公司网站上海小红书seo
  • 做安全宣传的是什么网站郑州社交网站开发
  • 做搜狗网站快速排名邢台装修网站建设
  • 建设部门户网站条例免费下载wordpress后台密码