HDU-DP
_北鸣
If I could, I surely would.
展开
-
HDU 1011 Starship Troopers (树形DP, 简单题目)
Problem Description 题目链接: HDU 1011 Starship Troopers 题意:副本: 有n个room, 每个room 都有a个怪物, b点经验值, 每个room之间为双向边, 构成一颗树(仅有n-1条边) 你: 拥有m个士兵, 一个士兵可以打20个怪物 限制: 要拿下某个room的b点经验,必须留下x个士兵将所有的怪物消灭,必须将当前room中所有怪物清除掉才能进原创 2017-09-26 17:08:35 · 288 阅读 · 0 评论 -
HDU 1024 Max Sum Plus Plus (dp, 降维)
题目链接: HDU 1024 Max Sum Plus Plus 题意: - 给出n个数, 取其中不相交的m个连续序列的累加和,问最大值为多少 构造dp方程最直观的方程: dp[i][j] = MAX( dp[i-1][j]+a[i], dp[k][j-1]+a[i]) ( 1<=k < i ) 其中dp[i][j]表示,在必须取第i个数的前提下,将前i个数分成j段的最大值 数据范围n->原创 2017-09-26 19:23:56 · 247 阅读 · 0 评论 -
HDU 1003 Max Sum (简单DP )
HDU 1003 Max Sum (简单DP )原创 2017-09-03 00:36:12 · 291 阅读 · 0 评论 -
HDU 1025 Constructing Roads In JGShining's Kingdom (简单dp, 最长上升子序列LIS)
题目链接 : Constructing Roads In JGShining’s Kingdom 题意: 有rich city和poor city 两种,分别有n个,编号均为1-n, 一个poor city只会与一个rich city连接,两种city的布局(连边不允许交叉如下 从左到右,均为编号为1-n. 给定边(poor city 连接 rich city),问在不相交的情况下能连接几条原创 2017-09-28 15:10:38 · 304 阅读 · 0 评论 -
HDU Bone Collector (01背包,裸题)
题目链接Bone Collector 题意: 给定n, v . 表示有n个物品, 和一个最大承重为v的背包,给出n个物品,每个物品的价值和重量. 问这个背包最多获得多少价值解法: 01背包,裸题 #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a; i<=b; ++i) #define repp(i,a,b) for(int i=b;原创 2017-09-29 14:44:19 · 332 阅读 · 0 评论 -
HDU 1059 Dividing(多重背包 , 二进制优化形成01背包)
题目链接: 1059 Dividing 题意: 有6个物品,一个物品的价值=该物品的编号i (1-6),给定每个物品的数量,问,是否能将所有物品分成价值相等的两堆? 解法: 多重背包,将价值当作背包承受量,物品数量当作价值. #include<stdio.h> #include<string.h> int a[7]; int f[120005]; int v,k; void ZeroOnePack(原创 2017-09-29 16:29:17 · 336 阅读 · 0 评论 -
HDU 1069 Monkey and Banana (dp, 最长上升子序列)
题目链接: HDU 1069 题意: 给定n个长方体,每个长方体均有长、宽、高. 将这些长方体(可重复使用)叠起来,满足上面的长方体的长宽>下面的长方体的长宽( 长>长,宽>宽,为严格> )的条件下. 问叠出来的高度最高为多少? 解法: 一个长方体可分为6种类型的长方体( 以不同的边为底边 ), 按照长排序后,进行最长上升子序列求解,即可得到答案. #include<bits/stdc++.h> u原创 2017-10-04 16:49:08 · 420 阅读 · 0 评论 -
HDU 1074 Doing Homework (二进制状态压缩,状压dp)
题目链接 : HDU 1074 题意: 给出n个课程作业, (课程名称,截止时间,完成所需天数), n<=15 每个课程作业,延误一天就扣一分 求最少扣分,以及输出方案,按字典序顺序 解法: n<=15则采用二进制去表示完成状态, 1 < < 15 - 1 = 111 111 111 111 111 (15个1)表示15个任务全部完成,0表示任务未完成,则,状态从 1 到 1 << n -1.原创 2017-10-04 18:01:02 · 457 阅读 · 0 评论 -
HDU 1078 FatMouse and Cheese (dfs + dp记忆化搜索)
题目链接 : HDU 1078 题意: 给定N x N 的方阵,每个格子均有一个价值,问从[0, 0]从发,往上下左右四个方向走,每次至多只能走k个格子,且每次停留的格子必须比上一次停留的格子的价值大(严格大于), 问: 能吃到的最大价值为多少? 解法: dp[i][j]表示从[i,j]出发能吃到的最大价值,由此进行记忆化搜索,即可得到答案. #include<bits/stdc++.h> usi原创 2017-10-05 16:56:33 · 343 阅读 · 0 评论