上一页 1 ··· 12 13 14 15 16
摘要: 1 #include 2 #include 3 #include 4 using namespace std; 5 long long a[2000003],sum[10000003],add[10000003],n; 6 void pushup(long long rt){sum[rt]=sum... 阅读全文
posted @ 2015-12-19 17:44 abclzr 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 我打暴力不对,于是就看看题解,,,,,,IDA*就是限制搜索深度而已,这句话给那些会A*但不知道IDA*是什么玩意的小朋友看题解请点击这里上方题解没看懂的看看这:把左上角的一团相同颜色的范围,那个范围周围的一圈,和剩余范围分别用c[i][j]赋值为1,2,0。然后做IDA*,限制搜索深度,估值函数h... 阅读全文
posted @ 2015-12-16 17:22 abclzr 阅读(205) 评论(0) 推荐(0) 编辑
摘要: K短路模板,A*+SPFA求K短路。A*中h的求法为在反图中做SPFA,求出到T点的最短路,极为估价函数h(这里不再是估价,而是准确值),然后跑A*,从S点开始(此时为最短路),然后把与S点能达到的点加入堆中,维护堆,再从堆顶取当前g值最小的点(此时为第2短路),再添加相邻的点放入堆中,依此类推·· 阅读全文
posted @ 2015-12-13 21:14 abclzr 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 裸IDA*,ans从1到15循环来限制搜索深度。 阅读全文
posted @ 2015-12-13 16:25 abclzr 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 这道题是求图的最小割,也就是用最大流。但因为边太多,最大流算法会T,因此不能用最大流算法。 因为这是个平面图,所以求平面图的最小割可以使用特殊的技巧就是求对偶图然后求对偶图的最短路。把每个面看成一个点f*,f*之间边的权值就是之前原来的点f之间与f*的边交叉的边的权值。(说的不清楚,大家可以看其他博 阅读全文
posted @ 2015-12-09 17:10 abclzr 阅读(734) 评论(0) 推荐(0) 编辑
摘要: 一开始T了一组RE了一组,实在找不出错来,就把数组加了一个0竟然就多A了一组。很惊讶的又加了几个0最后竟然全A了!!! 懒得做了,改的是之前的那个蚯蚓的游戏问题。还是需要拆点,至于为什么不能重复走结点,很容易想吧。 阅读全文
posted @ 2015-12-07 20:52 abclzr 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 因为蚯蚓走过的路径不能重合,所以把每个点拆成两个点,容量赋为1,保证不会走过相同的点,再加超级源点(程序中为1)和一个辅助点(程序中为2)容量赋为k来控制蚯蚓的数量,最后汇集到一个超级汇点上。做一遍最小费用最大流即可。 1 #include 2 #include 3 #include 4 #incl... 阅读全文
posted @ 2015-12-07 19:08 abclzr 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 不能再水的题了。Dinic算法,比EK更快。想要学习请看链接 https://comzyh.com/blog/archives/568/并附上我的模板(其实和comzyh大神的一样) 1 #include 2 #include 3 #include 4 using namespace std; 5 ... 阅读全文
posted @ 2015-12-04 21:12 abclzr 阅读(173) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16