摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4521题目大意:有n个数,求间距大于d的最长递增子序列。解题思路:扎眼一看,不是简单的dp嘛,再眨眼一看,n最大为10^5,蛋碎一地呀。 这题不仅要线段树功底好,还要有比较强的dp思想,从第d+1个位置开始更新,每个节点的sum值保存的是从第1个数到当前数的最长符合要求的子序列,查询的时候只需查询线段树中值在其左边的最大的sum[u](最长符合要求序列)。 1 #include <iostream> 2 #include <cstdio> 3 #include <cst 阅读全文
posted @ 2013-03-30 18:16 Mr. Ant 阅读(726) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=11025题目大意:有一个类似于工业加工生产的机器,起点为1终点为n,中间生产环节有货物加工数量限制,输出u v z c, 当c等于1时表示这个加工的环节必须对纽带上的货物全部加工(即上下界都为z),c等于0表示加工没有上界限制,下界为0,求节点1(起点)最少需要投放多少货物才能传送带正常工作。解题思路:经典题目,有上下界的最小流。 1、du[i]表示i节点的入流之和与出流之和的差。 2、增设超级源点st和超级汇点sd,连(st,du[i](为正)),(-du[i] 阅读全文
posted @ 2013-03-30 11:57 Mr. Ant 阅读(686) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20757题目大意:给出一个屋源无汇的网络,每条边都有容量上下界,让你求一个可行方案使得每个节点都流量守恒。解题思路:题目既然无源无汇点,那么所有节点都应该满足”入流=出流“这个流量平衡条件,为了方便解题,我们令每条边的容量下界为0,此刻容量上界变成了up-down(上界减去下届),我们定义一个du[]数组保存每个节点的入流之和与出流之和的差,建一个超级源点和一个超级汇点,当du[i]>0,说明入流大于出流,为了满足流量守恒,连一条st到i容量为du[i]的边 阅读全文
posted @ 2013-03-30 11:27 Mr. Ant 阅读(759) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1733题目大意:有一个类似于迷宫搜索的图,‘.’代表的是无人的路,'X'代表有人的点,'#'代表此点不可通过,'@'代表门口。每个位置每一秒钟只能站一个人,每个位置到上下左右点的时间为1,问你所有人能不能出去,能出去输出所有人都出去的最小时间,否则输出-1.解题思路: 第一次写这样的构造n层网络流的题,一开始完全没思路,纠结了良久。 先用BFS判断所有人能不能出去,不能出去直接输出-1,不用构图了。二分枚举时间,选出所有人都能出去的最小时间。因为每点每 阅读全文
posted @ 2013-03-30 11:13 Mr. Ant 阅读(549) 评论(0) 推荐(0) 编辑