摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意大致是给出一个隶属关系树,每个人代表一个结点,每个结点都有权值,有父子关系的点对只能选择一个,问怎样使得权值之和最大。 代码如下: 1 #include<bits/stdc++.h> 2 us 阅读全文
摘要:
题目链接:http://poj.org/problem?id=3280 一个序列,有n种不同的字符,可以在这个序列的任意位置插入和删除字符,花费不同,问最少需要多少花费可以使这个序列变成回文字符串。由于在头部插入和在尾部删除一个字符都能得到一个字符的前后回文对应,所以对于每一种字符只要知道插入和删除 阅读全文
摘要:
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257 题目中说明炮弹只能像更高的位置发射,对于发射高度X,<=X的高度这个炮弹是可以射到的,所以我们可以先考虑第一个高度,找出最长下降子序列,将其从原序列中删去,接着找下一个最长下降子序列,再将其从原序 阅读全文
摘要:
最长公共子序列(LCS):两个串s1和s2中取出若干有序位置的字符,使得取出的两个字符串相同的长度的最大值就是LCS 最长递增子序列(LIS):S的子序列,其中各元素按索引严格单调递增 最长公共递增子序列(LCIS):上面两者的结合,参考博客:https://blog.csdn.net/wall_f 阅读全文
摘要:
hdu2069 : 给出五种硬币,要求用这些面值的硬币构成S,问方案数是多少。经典dp问题。本题如果不限制金币的使用数量的话可以用dp[i]来记录总数为i的方案数,转移方程是dp[i]=dp[i]+dp[i-type[i]],也就是用type[i]硬币算在i中,方案数就是钱总数为i-type[i]的 阅读全文
摘要:
题目链接:http://poj.org/problem?id=1521 代码如下: 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<string.h> 5 #include<queue> 6 using 阅读全文