摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1733题目大意:有一个类似于迷宫搜索的图,‘.’代表的是无人的路,'X'代表有人的点,'#'代表此点不可通过,'@'代表门口。每个位置每一秒钟只能站一个人,每个位置到上下左右点的时间为1,问你所有人能不能出去,能出去输出所有人都出去的最小时间,否则输出-1.解题思路: 第一次写这样的构造n层网络流的题,一开始完全没思路,纠结了良久。 先用BFS判断所有人能不能出去,不能出去直接输出-1,不用构图了。二分枚举时间,选出所有人都能出去的最小时间。因为每点每 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1569题目大意:给你一个m*n的格子的棋盘,每个格子里面有一个非负数。 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取数所在的2个格子不能相邻,并且取出的数的和最大。解题思路:说实话,这样的网络流构图真的难想到,唉,练得太少了。定理: 最大点独立集=sum-最小点覆盖集。 这里要我们求最大点独立集,由上面的定理我们就可以转换为求最小点覆盖集。我发现网上很多题解对于割这一块讲解的不知所云,可能是对割的理解还没深入吧,不会就看别人解题报告,然后自己按照自己的理解不知所... 阅读全文
摘要:
题目链接:http://acm.hust.edu.cn/problem.php?id=1024题目大意:有n个男孩和n个女孩参加party,现在让你将他们分成n对不同的舞伴(只能男和女),男孩女孩可以和自己喜欢的人,最多和k个自己不喜欢的异性配对,现在问你能跳多少次舞(n对配完一次跳一次舞,每次的舞伴都不能重复)。解题思路: 网络流,关键在于建图。 把男性拆成两个点,分别放置在两个集合内,Xa和Xb,女性拆成两个点,分别放置在Ya和Yb内。Xa到Xb连接一条有向边,权值为k,Yb到Ya连接一条有向边,权值为k。当boy喜欢girl时,Xa和Ya之间连接一条对应的有向边权值为1,当b... 阅读全文
摘要:
原文网址:http://www.cnblogs.com/dolphin0520/archive/2011/04/11/2012867.html 在处理大数的运算时,一般采用数组去模拟,下面介绍大数的加、减、乘、除四则运算的实现方法。 1.加法。 如: Input: 12345678912345678 阅读全文
摘要:
学习AC自动机之前,必须先得把字典树和KMP算法给理解透了,否则会让你吃尽苦头,切不可本末倒置。 参考文献:http://www.cs.uku.fi/~kilpelai/BSA05/lectures/slides04.pdf 简单介绍一下AC自动机: 1.必须得先建一颗字典树,这是构建AC自动的基本结构,好比建房子的地基。 2.接下来就是AC自动机的构造了,里面最强大的就是fail指针(失败指针)了,fail指针的作用是当前字符匹配失败的时候字符跳转到下一个和此字符有最长公共前缀的字符,如果没有的话直接跳到根节点,且跳转必是深度深的向深度浅的跳转。 通过深度跳转的规律可知,我们... 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4135题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2841题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1695hdu 4135题目大意:输入一个a,b,n。 让你求a~b中有多少个数和n互素。1和任何数都互素。解题思路: 看到题我们不可能对i属于a~b进行遍历,然后求i是否和n有公约数,有则不互素,无则互素。时间复杂度是n^2 n最大100000,TLE。 这题要用到容斥定理。 我们可以先这样想... 阅读全文
摘要:
寒假到现在这一个月断断续续的做了一些有关线段树的题目,有句话确实说的没错:量的积累必将产生质的变化,可能是先学习了伸展树吧,学习起线段树感觉上手很多。一直ym各路大神,看着比自己牛X几倍的人一直比我努力着,我不甘。虽然现在依然很菜,但是我会加油的。 一、单点更新 1、 hdu1166 地兵布阵 题目 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3255题目大意:给你多块蔬菜地,蔬菜地有重叠部分,每部分种的蔬菜可能相同也可能不同,重叠部分种植蔬菜价值最贵的,最后让你求最大利润。解题思路: 这是我做的最坑爹的一题,几乎让我快哭了,Wrong answer了三十多次, 重拍了五六次代码。 每块蔬菜地种植蔬菜收获的利润为 val=x*y*price。 面积乘以价格,题目的重点转换在于如何确定重叠区域怎么让它种植最贵的蔬菜。 观察利润计算公式 : x*y*price <==> x*y*h 可以转换为求体积并。 说实话,这题一看真的很简单, 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3642题目大意:给你n个立方体,求相交区域大于等于三次的体积和。题目大意: 写这题之前我先做的hdu3255,有思路但是Wrong Answer到死。被逼无奈搜题解,都说是线段树扫描线求体积并,这之前我只会二维面积并。 其实吧,三维的和二维的其实差不多。如果一个立方体的高为h,那么我们可以把它分割成h层,对每一层进行面积并的扫描,注意是从下往上。 这题离散化x坐标是为了方便建树,离散化z坐标是为了节约时间。 剩下的问题就变成了如何求覆盖大于等于三次体积范围。 问题同样可以转化为二维的面积并求解,.. 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2871题目大意:四个操作:1、New x 找一段长为x的空区间段填满。 下面用0表示空单元,1表示非空单元。2、Free x 释放包含x的区间段3、 Get x 找到第x个区间段4、将整个区间都置为空。解题思路: 可以说这题应该算是线段树之区间操作里面比较好的经典题了。要注意的地方很多。对vector容器的用法又了解了很多。赞一个View Code 1 #include <cstdio> 2 #include <vector> 3 #include <iostream& 阅读全文