自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 POJ 3237 - Tree(树链剖分)

题目:http://poj.org/problem?id=3237题意:给出有边权的一棵树,三个操作:1.修改边权。2.将u->v 的路径边权取反。3.输出u->v 路径的最大边权。AC.#include #include #include #include #include using namespace std;const int inf = 0x

2015-09-30 15:17:32 455

原创 HDU 3830 - Checkers(二分LCA)****

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3830题意:给出直线上三个点的初始位置,和最终位置,每次可以选择一个点经过另一个点等间隔跳跃,但是不能经过两个点。求出是否能从初始状态到达最终状态。能的话输出最小步数。思路:将一个状态作为一个点,建二叉树。其根为状态能到达的三点等距的状态。若题目给出的初始位置和最终位置都能到达同一个

2015-09-30 15:07:34 726

原创 HDU 3966 - Aragorn's Story(树链剖分)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3966题意:n个点的树,每个点都有权值。q个询问:Q u : 输出u点的权值。I u v d:将u到v的路径上点的权值增加d。D u v d:将u到v的路径上的点的权值减少d。思路:树链剖分。修改点权。相关论文:http://blog.sina.com.cn/s/blog_7a1

2015-09-24 20:58:07 373

原创 ***HDU 4429 - Split the Rectangle(LCA'暴力求解)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4429题意:一个大矩阵中有m条水平或竖直直线,将其分成m+1个小矩阵。有q个询问,输入两个点,要使得两个点在同一个矩阵,可以拿掉一些边,但是拿掉边之后要使得两个矩阵能合成一个矩阵。求出最后剩下的最多的矩阵数量。思路:将图转化成树。大矩阵为根,一条直线分割矩阵,一个矩阵变成根的左儿子,

2015-09-17 23:37:13 732

原创 *HDU 4427 - Math Magic(dp)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4427题意:k个数的和为n,最小公倍数为m,求出k个数的序列有多少种(顺序不同算不同)思路:dp【i】【j】【k】:前k个数和为j lcm为k的方案数。第一维使用滚动数组才不会爆内存,先将1000以内两数的lcm预处理,记录m的约数。m的约数与约数的lcm也是m的约数。AC.

2015-09-17 18:19:33 478

原创 HDU 4424 - Conquer a New Region(最大生成树)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4424题意:n个点的树,i点到j点的路径最大价值是i到j点的路的权值最小值,以一个点为源点,使得从这个点到其他点的总价值最大。思路:将边权值按照从大到小排序,枚举每一条边,此时的边为当前所有边的最小边,判断将u集合合并到v集合还是 v集合合并到u集合,使用并查集实现。最后集合的祖先就是源

2015-09-17 16:06:34 525

原创 HDU 4421 - Bit Magic(2-SAT)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4421题意:给出一个矩阵,询问是否存在一个a序列,使得符合矩阵中,b【i%2=1】【j%2=1】= a[i]|b[j] ; b【i%2=0】【j%2=0】= a[i] & a[j];其他b【i】【j】 = a[i]^b[j].思路:将数的每个二进制位分别建图,跑2-SAT.AC.

2015-09-17 15:21:43 427

原创 HDU 4784 - Dinner Coming Soon(BFS)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4784题意:n个点m条边,从1出发,有钱数R,在T时间内到达终点n。且除了起点和终点起点有k个维度。起点和终点在0维上。途中可以买卖盐,以使得钱数尽可能地多。途中的点有多个维度,只能从k维跳到(k+1)维,花费时间为1,在各维度上进行买卖不需要时间。每条有向边有时间和花费。求出到达终

2015-09-15 21:18:12 516

原创 POJ 1776 - Task Sequences(哈密顿图)

题目:http://poj.org/problem?id=1776题意:给出一个n*n的矩阵,若第i个任务做完之后可以做第j个任务,则矩阵的第i行第j列为1,否则为0。机器完成一项任务之后会自动转到下一个任务,否则机器会自动停止。求出最少的启动次数,输出每次启动次数完成的任务个数和任务序列。思路:题目给出一个竞赛图(即任意两点之间有且仅有一条有向边的有向图),则竞赛图一定存

2015-09-12 18:24:38 941

原创 UVA216 - Getting in Line(哈密顿图)

题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=90847#problem/C思路:经过每条边一次。递归回溯。AC.#include #include #include #include #include #include using namespace std;const int inf =

2015-09-09 20:29:06 580

原创 POJ 2337 - Catenyms(欧拉回路)

题目:http://poj.org/problem?id=2337题意:将所有的单词首尾相连链接起来,且每个单词只可使用一次,问是否存在方案,若存在,输出字典序最小的方案。思路:使用全部单词且每个单词仅使用一次,可以联系到有向图欧拉路径。每个单词对应一条有向边,u为单词首字母对应的数字,v为单词尾字母对应的数字,建一条u指向v的边。判断有向图是否存在欧拉路径:1)并

2015-09-09 14:35:14 419

原创 POJ 1041 - John's trip(欧拉回路)

题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=90847#problem/A题意:求无向图的欧拉回路是否存在,若存在则输出字典序最小的路径。思路:先判断是否存在欧拉回路。对于无向图,所有的数的度都为偶数则存在。dfs 枚举边,得到答案。AC.#include #include #includ

2015-09-08 12:56:06 453

原创 ***HDU 3237 - Help Bubu(状压DP)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3237题意:给出n本书的高度(25现在你可以移动至多k本书,求出最小的杂乱度。思路:书的高度只有 0~7,所以可以使用状压来表示书的高度的状态。如果前i本书中存在高度为h的书,那么s的第h位表示为1.dp[i][j][s][h]: 表示前i本书取走j本,书的高度状态为s,且最

2015-09-06 18:45:58 574

原创 HDU 3234 - Exclusive-OR(并查集)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3234题意:n个数,R条指令。I u w : 表示第u个数是w。I u v w: 表示第u和v 个数的异或值是 w。Q k (k个数的下标):输出这k的数异或值。思路:并查集中,设fa[u]为u的祖先,val[u]为u与根异或的值。若 fa[u] = fu, fa[v]

2015-09-06 13:39:55 488

原创 HDU 4940 - Destroy Transportation system(网络流)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4940题意:给出一个强连通图,每条边有两个权值,破坏边的权值和修建边的权值。询问是否存在一个集合S及其补集T,使得从S到T破换的边的权值和X,从T到S破坏的边和修建的边的权值和Y,满足X 思路:有上下界的网络流。如果所有流出的流量等于流回的流量,那么便满足 X 建图:1:

2015-09-05 16:52:24 502

原创 HDU 4406 - GPA(网络流‘费用流)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4406题意:复习m门课,有n天的复习时间,每一天只能复习k个课时。给出m门课的学分和基础分。n*m的矩阵:1表示i天可以复习课程j 。花一个课时复习该课程则可以增加一分。在使得没有课程不及格的情况下,求出最高的GPA(给出相关公式)。思路:每科的绩点f(x, w) = (4.0 -

2015-09-04 17:06:39 420

原创 POJ 1364 - King(差分约束)

题目:http://poj.org/problem?id=1364题意:一个序列含有n个数,有q个限制条件,表示为区间和(s,s+n)> k 或是 区间和(s,s+n)思路:Si 表示前i个数的和,则题目条件表示为 Si+n - Si k: 建边(i+n,i,-k-1)。此时建成的图不是连通图,则建立一个超级源点n+1使图连通,建边(n+1,i,0)。若图存在负环,则

2015-09-03 18:21:56 421

原创 HDU 4274 - Spy's Work(树形DP)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4274题意:给出n个点的树,树上的节点权值为其子树的节点权值和(大于等于1),给出一些节点的限制条件,判断这些条件是否成立。思路:midp:表示该节点权值的下限,madp:表示该节点权值的上限。按照题目所给的限制条件,赋值dp数组。在dfs中更新 midp,节点的权值上限无法

2015-09-03 16:47:17 420

原创 HDU 3440 - House Man(差分约束)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3440题意:给出n个房子的高度,每一次跳跃最远的距离D。从最矮的房子开始,按高度顺序跳跃,终点为最高的房子。可以随意移动房子,但是不能改变原来的顺序,求出起点到终点的最远距离。思路:设0为原点,Si 表示i房子到原点的距离。Si - Si-1 >= 1: 建边(i, i-1, -

2015-09-03 12:49:56 579

原创 ***HDU 1529 - Cashier Employment(差分约束)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1529题意:给出一天中24个小时,每个小时至少需要的工人数,有m个工人,每个工人有其开始时间,每个工人持续工作8小时。求出完成一天的工作最少需要多少人。思路:num[i]为从i时刻开始工作的人数x[i] 为 i时刻实际工作的人数r[i]为 i 时刻至少需要工作的人数Sn表

2015-09-02 22:41:49 802

原创 *POJ 1201 - Intervals(查分约束)

题目:http://poj.org/problem?id=1201题意:给出n个区间【a,b】,每个区间一个c,表示在集合Z中,此区间至少有c个共同元素。询问集合Z至少有多少元素。思路:对于区间【a,b】= c. sa 表示区间【0,a】的共同元素,即 sb - sa >= c ,所以建边(a,b+1,c),(为了防止端点重复,则区间变为【a,b+1),eg:【1,3】=1

2015-09-01 21:30:37 422

原创 POJ 3159 - Candies(查分约束)

题目:http://poj.org/problem?id=3159题意:给n个人派糖果,m组数据,(u,v,w)表示u比v的糖果少的个数不超过w,u-v 最后求出n比1最多 多多少糖果。思路:查分约束。对于(u,v,w)小值向大值建边(u,v).由于要一系列满足不等式,所以应该去(u,v)的最小值,所以转换为求最短路。spfa算法+栈优化。AC.#i

2015-09-01 10:04:01 502

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除