对于网络流熟练的玩家来说就是送分题

每一个点不是0就是1,这分类讨论一下就能证明、

然后0和1一定是有一定的界限,相当于把图分成两半、

所以应该很自然地想到了划分集合的方法

用网络流的花就是最小割、

于是推了半天,才推出来:

‘’

然后因为是方格,所以需要对偶图最短路

建出来的这个网络流显然没法跑最短路

所以考虑原图

每两个点两个方向的流量可以转化为最短路图中边的方向  (也想了好久)

然后就可以了过了

(其实最好写堆优dijkstra,spfa易被卡     然鹅bzoj总时限、)

然后要注意打完代码无论如何都要用眼睛看一遍

最后一组边的读入直接注释掉了 有40,而且对拍极限数据半天才出错、

码:

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
using namespace std;
queue<int>q;
#define inf 1000000009
#define N 9000000
int tot,hou[N],xia[N],zhong[N],v[N],x,n,s,t,i,j,dis[N];
bool vis[N];
void jia(int a,int b,int c)
{
++tot,hou[tot]=xia[a],xia[a]=tot,zhong[tot]=b,v[tot]=c;
}
int spfa()
{int i;for(i=1;i<N;i++){dis[i]=inf;      }q.push(s); dis[s]=0;  while(!q.empty()){int st=q.front();q.pop();vis[st]=0;for(i=xia[st];i!=-1;i=hou[i]){int nd=zhong[i];if(dis[nd]>dis[st]+v[i]){dis[nd]=dis[st]+v[i];if(!vis[nd]){vis[nd]=1;q.push(nd);}   }}}return dis[t];
}
int main()
{memset(xia,-1,sizeof(xia));scanf("%d",&n);s=(n+2)*(n+1)+1;t=n+2;for(i=1;i<=n+1;i++){for(j=2+i*(n+2);j<=2+i*(n+2)+n-1;j++){scanf("%d",&x);    jia(j,j-n-2,x);}}for(i=1;i<=n;i++){for(j=1+(n+2)*i;j<1+(n+2)*i+(n+1);j++){scanf("%d",&x);  jia(j,j+1,x);}}    for(i=1;i<=n+1;i++){for(j=2+(i)*(n+2);j<=2+(i)*(n+2)+n-1;j++){scanf("%d",&x); jia(j-n-2,j,x);}}
for(i=1;i<=n;i++){for(j=1+(n+2)*i;j<1+(n+2)*i+(n+1);j++){scanf("%d",&x);   jia(j+1,j,x);}}for(i=2;i<=n+1;i++)jia(i,t,0);for(i=2*(n+2);i<(2+n)*(n+2);i+=n+2)jia(i,t,0);for(i=1+(n+2);i<(n+1)*(n+2);i+=n+2)jia(s,i,0);for(i=2+(n+1)*(n+2);i<(n+2)*(n+2);i++)jia(s,i,0);
printf("%d",spfa());
}

2017.9.11 海拔 思考记录相关推荐

  1. 2017.9.5 组合数学 思考记录

    这题风格很正统.所以我感觉如果自己能不靠题解把这个题做出来,那应该就学得不错了.. 于是在历尽千辛万苦之后,终于1A了.(事后证明 结论题的结论强行无视 乱搞也是有可能AC的) xym&ISA ...

  2. 2017.9.4 Nim 思考记录

    只要知道nim的结论   这题就是链剖板子题.1A 注意bzoj 的  换行符是     \r!!      \r!!      \r!! 就说一下链剖的易错点吧: 1.记录父节点.sz.深度 2.当 ...

  3. 2017.10.28 排序 思考记录

    这个题有一种套路,就是大小关系转化成01串,这样就变成了二分检验问题,, 就是把排序变成区间修改,然后单点查询.. 把所有比他小的赋成0,比他大的赋成1 然后判断要求位是0还是1来判断答案与当前值的大 ...

  4. 2017.10.28 压缩 思考记录

    这个题首先要知道M和R不是栈的搭配,是贪心的搭配,,就是向左找到第一个M.. 如 abababab cdcdcdcd abababab cdcdcdcd   = abRRcdcdcdcdR != Ma ...

  5. 2017.10.6 单词 思考记录

    少有的会做的ac自动机题 .这个题是匹配模式串. 所以就不需要匹配的过程,只需要建出fail树,然后直接拓扑 由于每次加进去一个单词,这个单词的每一个字母都有可能作为最后一个字母影响他的失配,所以词路 ...

  6. 2017.10.5 高速公路 思考记录

    ..一开始死活不知道样例8/3是怎么算出来的.. 后来才发现右端点要-1.. 这个题说是期望,但因为每个点的概率相同,所以直接求和然后除就可以了 维护每个区间的答案,听说直接维护答案很难写,,感觉还可 ...

  7. 2017.10.1 蚯蚓 思考记录

    现在看来这个题真心不难. 如果能保证一个从大到小的顺序的话,对所有的数依次进行相同比例的分裂操作,左右两边一定也是单调的 由于每次要+q,等价于取出元素-q,这在式子里是不影响大小关系的 所以就sor ...

  8. 2017.9.28 产品加工 思考记录

    很早之前做的了.发现bzoj上竟然没提交过 于是又重推了一遍 首先这个ti<=5是用来让n^2的复杂度降一降的, 然后就考虑装每个物品之后各个机器的耗时,同时,对于一个A机器的耗时,可能会有多个 ...

  9. 2017.9.28 降雨量 思考记录

    论逻辑清晰的重要性. 首先大小的关系明摆着是要你建一颗线段树 然后就可以分类讨论了 x没有 y有 x有 y没有 x没有 y没有 x有 y有 对于都没有的情况  只可能是maybe 对于一个没有的情况, ...

最新文章

  1. seaborn箱图(box plot)可视化、并且在箱图中使用三角形标注均值的位置(showmeans=True)
  2. [javaSE] 多线程(守护线程)
  3. python文件无法关闭_Python脚本无法正常终止
  4. Java设计模式之迭代器模式
  5. mysql计算相邻的差值_MySQL如何计算相邻两行某列差值
  6. 趣味概率问题:脑洞蒙特卡洛模型,来招聘!!!
  7. 取消360导航作为浏览器访问首页
  8. Tracup|使用项目管理软件帮助战胜拖延症
  9. 主机耳机没声音win10
  10. 同学聚会,进行点菜,点了大盘鸡 水煮鱼 大虾 以及4个凉菜 1箱啤酒 分别录入各个单价,并计算总价,录入总学生数,计算人均多少钱。
  11. Python字符串格式化
  12. 从钉钉后台对接考勤打卡信息(仅供参考)
  13. 微服务时代之2017年五军之战
  14. Arduino基础篇(二)-- 常用的基本函数
  15. Android Studio如何查看自己创建的SQLite数据库
  16. Unity3D Content Size Fitter的坑
  17. 多媒体计算机设计原则,多媒体课件的设计原则
  18. Unity3D播放音频数组的问题
  19. ThinkPHP根据时间显示不同的问候语
  20. ORACLE EBS

热门文章

  1. SpringBoot和监控管理
  2. Theory and tools for the conversion of analog to spiking convolutional neural networks
  3. 【汇总】pytorch里的一些函数
  4. Win10 Ubuntu子系统用户密码忘记解决方案
  5. python fun函数、求4x4整型数组的主对角线元素的和_python中多维数组中列major的numpy整形...
  6. 坐标轨迹计算_机器人的轨迹规划与自动导引
  7. int 为什么是2147483647_现在的C语言编辑器里的int范围为什么是-2147483648~2147483647...
  8. HTML基础知识点(1)
  9. python编程语言模块_Python基础编程常用模块汇总
  10. mysql 存储过程 模糊查询_mysql 分页创建存储过程并实现模糊查询