动态规划
achonor
早起的虫子被鸟吃..
展开
-
LeetCode 1000. 合并石头的最低成本
题目连接:https://leetcode-cn.com/problems/minimum-cost-to-merge-stones/思路:区间动态规划,详细看注释using System;using System.Collections.Generic;using System.Text;namespace LeetCode { class Program_1000 { int Step; //前缀和 int[] Sum = new i原创 2021-03-31 15:54:50 · 197 阅读 · 0 评论 -
LeetCode 1163. 按字典序排在最后的子串 非投机取巧
**1.先用dp算出所有的下降子序列2.将所有最长的下降子序列放入vector中排序3.先按照所有下降子序列的第一个字符排序,然后舍弃后面的子序列4.再按照第二个字符排序,再舍弃后面的子序列,直到vector中只剩下一个子序列**class Solution {private: string text; int dp[400005]; inline char GetText(int index) { if (index < text.lengt原创 2020-08-26 13:13:50 · 234 阅读 · 0 评论 -
[HDU 1011] Starship Troopers 树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=1011题意:有一支军队,每个人能消灭 20 个 bug。输入n , m。表示 bug 有 n 个洞(编号1-n )和这支军队有 m 个人。这些洞形成一颗树,必须打了前面才能打到后面。原创 2020-06-09 15:36:50 · 534 阅读 · 0 评论 -
[HDU 1561] The more, The Better 树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=1561题意:中文题。思路:树形dp,转移方程: dp[i][k] = max(dp[i][k], dp[i][k-l]+dp[son][l]);原创 2015-08-06 19:59:32 · 367 阅读 · 0 评论 -
[HDU 2196] Computer 树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=2196题意:开始输入 n ,表示有 n 个顶点,然后输入 n - 1 行,第 i 行两个数 x, y 表示 i, x有一条边, 路径长度为 y ,求每个点和离这个点距离最远的点之间的距离。原创 2015-08-06 20:15:41 · 398 阅读 · 0 评论 -
湖南省第七届程序设计竞赛 最优对称路径
湖南省第七届大学生计算机程序设计竞赛 题目G 最优对称路径给一个n行n列的网格,每个格子里有一个1到9的数字。你需要从左上角走到右下角,其中每一步只能往上、下、左、右四个方向之一走到相邻格子,不能斜着走,也不能走出网格,但可以重复经过一个格子。为了美观,你经过的路径还必须关于“左下-右上”这条对角线对称。下图是一个6x6网格上的对称路径。你的任务是统计所有合法路径中,数字之和最小的路径有多少条原创 2015-08-20 18:38:25 · 1415 阅读 · 0 评论 -
[BZOJ 1003] 物流运输 SPFA+DP
自从省赛受打击后好久没写题目了,今天写了这个就犯了一个特别愚蠢的错误,查了一天啊。。。原创 2015-10-27 21:01:31 · 755 阅读 · 0 评论 -
[HDU 5568] sequence2 dp+大数
题意:给定长度为 n 的序列 bi,求有多少长度为 k 的但是本质不同的上升子序列。本质不同的意思就是两个子序列中至少有一个位置的下标不同。思路:dp, dp[i][j] 表示已经选了 i 个数做子序列前驱是 j 。 dp[i][j] = sum( dp[i + 1][l]) ( l > j, ary[l] > ary[j])。原创 2015-11-22 11:29:58 · 1006 阅读 · 0 评论 -
邮票面值设计
邮票面值设计原创 2015-07-19 22:10:17 · 1961 阅读 · 0 评论 -
[HDU 1085] Holding Bin-Laden Captive! 母函数或多重背包
有三个硬币面值分别是1,2,5。输入三个硬币的个数,要求出这三个硬币不能组成的最小的面值。原创 2015-07-29 12:03:03 · 809 阅读 · 0 评论 -
hihocoder 1290 Demo Day
略原创 2016-04-06 22:20:34 · 1030 阅读 · 0 评论 -
[POJ 2411] Mondriaan's Dream 多米诺问题
http://poj.org/problem?id=2411题意:用1*2的骨牌填满一个n*m的矩形,问有多少种填法。思路:状态压缩,然后dp,横着的骨牌定义为0 0,竖着的定义为0 1原创 2015-08-05 17:54:00 · 697 阅读 · 0 评论 -
[HDU 1024] Max Sum Plus Plus 多段子序列和
http://acm.hdu.edu.cn/showproblem.php?pid=1024题意:输入两个数m, n然后输入 n 个数,求将这n个数分出 m 个不相交的子序列,求所有子序列的和思路:看完题目应该就知道这是个dp,dp[i][k], 表示将序列前 k 前项分成 i 段而且arg[k] 在序列里的最大和。但是题目给出的 n 可以到1000000原创 2015-08-05 11:56:14 · 451 阅读 · 0 评论 -
[HDU 4512] 吉哥系列故事——完美队形I 最长上升公共子序列
http://acm.hdu.edu.cn/showproblem.php?pid=4512题意:中文题,给你一个 队列,要你在不改变队列顺序的情况下选几个人出来组成一个对称的先上升后下降的队列,问最多选多少人。思路:将队列倒过来和原队列求最长上升公共子序列,dp[i][k] 表示序列a中[1, i]和b序列中[1, k]选出的最长的以b[k]结尾的上升公共子序列。原创 2015-08-05 08:33:01 · 590 阅读 · 0 评论 -
[HDU 4507] 吉哥系列故事——恨7不成妻 数位dp
http://acm.hdu.edu.cn/showproblem.php?pid=4507 话说第一眼看到的时候知道是数位dp,但是确实想不到怎么写,然后看了大牛的博客才写出来的,数学不好真是硬伤啊。。。 住要就是要找到搜索完第 pos 位的时候怎么讲这个状态转移到 pos + 1 位上面去,我们把所有的小于pow(10, pos) 的满足条件的数原创 2015-08-10 17:34:37 · 539 阅读 · 0 评论 -
[POJ 1947] Rebuilding Roads 树形dp
http://poj.org/problem?id=1947题意:输入 n, m 表示一棵树有 n 个顶点,然后输入 n-1 条边,要求删除一些边使得树中剩下 m 个点,问最少要删除多少边。原创 2015-08-06 19:40:17 · 556 阅读 · 0 评论 -
[HDU 3535] AreYouBusy 混合背包
http://acm.hdu.edu.cn/showproblem.php?pid=3535原创 2015-07-28 09:35:05 · 567 阅读 · 0 评论 -
[POJ 1742] Coins 男人八题(多重背包)
楼教主的男人八题。题意:有n个类型的硬币,给出每个硬币的价值和数量,需要求这n个类型的硬币可以组成1-m中的多少个数。原创 2015-07-27 16:15:59 · 970 阅读 · 0 评论 -
[HDU 2602] Bone Collector 01背包
有n块骨头,一个体积为v的背包,给出每个骨头的体积和价值,求背包能装的最大值原创 2015-07-27 12:01:07 · 485 阅读 · 0 评论 -
[HDU 1712] ACboy needs your help 分组背包
有n门课程和m天的时间,输入一个矩阵a[i][j], 表示花费 j 天去完成第 i 门课程可以得到 a[i][j] 的价值,要你求最大价值原创 2015-07-27 10:27:06 · 530 阅读 · 0 评论 -
[HDU 1171]Big Event in HDU 母函数或多重背包
杭电计算机学院分家,需要把东西分成两份,要求两份的价值最接近。先输入物品数量 n 表示有 n 个物品, 然后输入每个物品价值和数量。比较坑的地方就是输入负数结束。原创 2015-07-29 17:04:52 · 595 阅读 · 0 评论 -
[HDU 5313] Bipartite Graph 二分图染色+分组背包
输入一个二分图,通过加边使得这张图变成一个边数最多的完全二分图. 问最多能够新加多少条边.原创 2015-07-26 21:48:26 · 1502 阅读 · 0 评论 -
[POJ 2677] Tour 双调旅行商
http://poj.org/problem?id=2677题意:给你 n 个二维坐标上的点,你需要经过所有的点然后走回原地,求最短路径。思路:我们先给所有的点按照 x 坐标升序排列, 因为要走成环我们可以看成两个人同时从第一个点开始走, 定义 dp[i][k] 表示第一个人走到第 i 个点第二个人走到第 k 个点的最短距离(走在前面的人是 i )。 对于任意一个点i来说,有两种连接方法...原创 2015-08-15 12:10:16 · 1777 阅读 · 0 评论 -
[HDU 1423] Greatest 最长上升公共子序列
求最长上升公共子序列。。。。原创 2015-08-04 17:14:01 · 569 阅读 · 0 评论 -
[HDU 2191]悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。原创 2015-07-27 13:57:36 · 718 阅读 · 0 评论