标题效果:给定一个n*m矩阵。所有的格宝石之子,人们可选择起始位置,后除去宝石的当前位置的周围消失,然后你就可以走两步,重复上述过程

easy发现格儿子把它周围格孩子不能拿 因此,党格访问问题

黑白染色 黑色点连源 白色点连汇 流量为格子的权值 黑白之间连边 流量为正无穷 用总和减去最大流就是答案

曾经写的EK 跑了4000+ms我也是醉了

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>
  4. #define M 110
  5. #define MAX (0x7fffffff)
  6. int m,n,sum,ans;
  7. struct abcd{int x,y,f,next;}table[100100];int head[M][M],tot=1;
  8. void addd(int x,int y,int tox,int toy,int f)
  9. {
  10. table[++tot].x=tox;
  11. table[tot].y=toy;
  12. table[tot].f=f;
  13. table[tot].next=head[x][y];
  14. head[x][y]=tot;
  15. }
  16. void add(int x,int y,int tox,int toy,int f){ addd(x,y,tox,toy,f);addd(tox,toy,x,y,0); }
  17. inline int min(int x,int y){ return x<y?x:y; }
  18. struct que{int x,y;}q[65540];unsigned short r,h;
  19. int f[M][M],from[M][M];
  20. bool maxflow()
  21. {
  22. int i;
  23. memset(f,0,sizeof f);
  24. q[++h].x=0;q[h].y=0;
  25. f[0][0]=MAX;
  26. while(r!=h)
  27. {
  28. r++;
  29. for(i=head[q[r].x][q[r].y];i;i=table[i].next)if(table[i].f)if(!f[table[i].x][table[i].y])
  30. {
  31. f[table[i].x][table[i].y]=min(f[q[r].x][q[r].y],table[i].f);
  32. from[table[i].x][table[i].y]=i;
  33. q[++h].x=table[i].x;q[h].y=table[i].y;
  34. }
  35. }
  36. if(!f[0][1])return 0;
  37. ans+=f[0][1];
  38. for(i=from[0][1];i;i=from[table[i^1].x][table[i^1].y])table[i].f-=f[0][1],table[i^1].f+=f[0][1];
  39. return 1;
  40. }
  41. int main()
  42. {
  43. int i,j,x;
  44. scanf("%d%d",&m,&n);
  45. for(i=1;i<=m;i++)
  46. for(j=1;j<=n;j++)
  47. {
  48. scanf("%d",&x);
  49. sum+=x;
  50. if(i+j&1)add(i,j,0,1,x);
  51. else
  52. {
  53. add(0,0,i,j,x);
  54. if(i^1)add(i,j,i-1,j,MAX);
  55. if(j^1)add(i,j,i,j-1,MAX);
  56. if(i^m)add(i,j,i+1,j,MAX);
  57. if(j^n)add(i,j,i,j+1,MAX);
  58. }
  59. }
  60. while(maxflow());
  61. printf("%d",sum-ans);
  62. }

版权声明:本文博主原创文章。博客,未经同意不得转载。

BZOJ 1324 Exca神剑 最小割的更多相关文章

  1. BZOJ 1324 Exca 神剑 最小割

    标题效果:鉴于加权值矩阵,带走一个地方的权利值之后,与其相邻的格儿童权利值变0.问多少可以取出到右值. 思维:Amber论文题目.不难建设,图着色.颜色从S连边,还有一种颜色向T连边.再把相邻的格子连 ...

  2. bzoj 1324 Exca王者之剑(黑白染色,最小割)

    [题意] 两相邻点不能同时选,选一个点集使得权值和最大. 出题人语文好... [思路] 将图进行黑白二染色,然后构建最小割模型. [代码] #include<set> #include&l ...

  3. 【BZOJ-1324】Exca王者之剑 最小割

    1324: Exca王者之剑 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 483  Solved: 248[Submit][Status][Disc ...

  4. BZOJ 1324: Exca王者之剑

    1324: Exca王者之剑 Description Input 第一行给出数字N,M代表行列数.N,M均小于等于100 下面N行M列用于描述数字矩阵 Output 输出最多可以拿到多少块宝石 Sam ...

  5. [BZOJ 2127] happiness 【最小割】

    题目链接:BZOJ - 2127 题目分析 首先,每个人要么学文科,要么学理科,所以可以想到是一个最小割模型. 我们就确定一个人如果和 S 相连就是学文,如果和 T 相连就是学理. 那么我们再来确定建 ...

  6. BZOJ.3532.[SDOI2014]LIS(最小割ISAP 退流)

    BZOJ 洛谷 \(LIS\)..经典模型? 令\(f_i\)表示以\(i\)结尾的\(LIS\)长度. 如果\(f_i=1\),连边\((S,i,INF)\):如果\(f_i=\max\limits ...

  7. BZOJ 2561 最小生成树 | 网络流 最小割

    链接 BZOJ 2561 题解 用Kruskal算法的思路来考虑,边(u, v, L)可能出现在最小生成树上,就是说对于所有边权小于L的边,u和v不能连通,即求最小割: 对于最大生成树的情况也一样.容 ...

  8. bzoj 1497 最大获利 - 最小割

    新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项,就需要完成前期市场研 ...

  9. BZOJ 1391: [Ceoi2008]order [最小割]

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Statu ...

随机推荐

  1. c++各类变量汇总

    一.局部变量和全局变量: (1)局部变量:局部变量也叫自动变量,它声明在函数开始,生存于栈,它的生命随着函数的返回而结束. #include <stdio.h> int main(void ...

  2. javascript它【蛇系列】第一弹:简单的蛇实现

    参考博客:http://blog.csdn.net/sunxing007/article/details/4187038 上面的博客是一个参考,竟第一次做.真让自己盲人摸象做不出来. 只是我在其上做了 ...

  3. 使用SSIS对Dynamics CRM 系统进行数据迁移

    嗨,各位.近期项目一直都非常忙,而且自己也一直在思考职业发展的问题,所以有非常长一段时间没静下心写几篇Blog了.近期我參与的项目是Dynamics CRM 2011 到 Dynamics CRM 2 ...

  4. android插件技术-apkplug于OSGI服务基础-08

    我们提供 apkplug 下OSGI使用demo 源代码托管地址为 http://git.oschina.net/plug/OSGIService 一 OSGI与android Service 异同点 ...

  5. 飘逸的python - __new__、__init__、__call__傻傻分不清

    __new__: 对象的创建,是一个静态方法.第一个參数是cls.(想想也是,不可能是self,对象还没创建,哪来的self) __init__ : 对象的初始化, 是一个实例方法,第一个參数是sel ...

  6. 【JavaEE基础】在Java中如何使用jdbc连接Sql2008数据库

    我们在javaEE的开发中,肯定是要用到数据库的,那么在javaEE的开发中,是如何使用代码实现和SQL2008的连接的呢?在这一篇文章中,我将讲解如何最简单的使用jdbc进行SQL2008的数据库的 ...

  7. 【架构之路之WCF全析(一)】--服务协定及消息模式

    上周微软开公布会说.NET支持全然跨平台和并开放Core源代码的新闻,让我们顿时感到.NET要迎来它的春天.尽管早在几年前.NET就能开发Android和IOS,可是这次的跨平台把Linux都放到了微 ...

  8. XP下採用DirectShow採集摄像头

    转载请标明是引用于 http://blog.csdn.net/chenyujing1234 欢迎大家提出意见,一起讨论! 须要演示样例源代码的请独自联系我. 前提: 摄像头能正常工作.摄像头有创建di ...

  9. Python学习入门基础教程(learning Python)--3.2 if-else分支语句

    if-else分支语句结构的特点是当conditon条件满足时,执行if下的语句块,当condition条件不满足时执行else下的语句块,也就是说根据条件来控制让某些语句执行,某些语句不被执行. i ...

  10. codeforces55D数位dp

    codeforces55D 查询给定区间内的beautiful number.  一个数字是beautiful number当且仅当能被自己的各个数字不为0的位整除. 这个dp的状态还是挺难想的.一个 ...