随笔分类 -  DP

 
一道google面试题
摘要:输入n,把1-n分成两个和相等的子集,有多少种分法想了个dp,直接背包也行#include #include using namespace std;int dp[55];int main() { int n; scanf("%d", &n); int s = n * (n + 1... 阅读全文
posted @ 2015-09-19 11:08 LegendaryAC 阅读(201) 评论(0) 推荐(0)
HDU 2276
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2276矩阵乘法可以解决的一类灯泡开关问题/*转移关系为 now left now*1 0 1 1 1 00 1 10 0 0可知F[i] = (f[i] + f[(n... 阅读全文
posted @ 2015-06-15 18:11 LegendaryAC 阅读(259) 评论(0) 推荐(0)
HDU 1300
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1300这题大一就看到过,当时没读懂题目,今天再做就容易多了题意:升序给出n个珍珠的的数量和价值,问买这些珍珠的最小花费,其中可以用价值高的珍珠等量代替价值小的珍珠,并且一种价钱如果决定买,必须多买10个保底水dp,... 阅读全文
posted @ 2014-11-19 17:16 LegendaryAC 阅读(306) 评论(0) 推荐(0)
HDU 4576
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4576题意:给一个1-n的环,m次操作,每次操作顺时针或逆时针走w步,求最后落在[l,r]区间的概率dp[i][j]表示第i步走到点j的概率,很裸的概率dp,i太大,需要滚动数组时限4s,我的代码3984ms过的,... 阅读全文
posted @ 2014-11-17 21:29 LegendaryAC 阅读(320) 评论(0) 推荐(0)
HDU 2291
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2291读题读的烦死了,今天果真不适合做题题意:给两个n*n的矩阵,第一个代表一个人战胜一个人可以得到的经验值,第二个代表一个人战胜另一个人可以得到的分数,然后n个数,代表n个人的初始经验值,只有经验值大于对手才可以... 阅读全文
posted @ 2014-11-05 00:12 LegendaryAC 阅读(155) 评论(0) 推荐(0)
HDU 1074
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1074每个任务有一个截止日期和完成时间,超过截止日期一天扣一分,问完成全部任务最少扣几分,并输出路径最多15个任务,状态压缩一下进行dp,输出路径的话要记录每种状态的前驱,存起来逆序输出#include #incl... 阅读全文
posted @ 2014-11-02 21:40 LegendaryAC 阅读(164) 评论(0) 推荐(0)
HDU 5092
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5092卡读题,实质是每行取一个点,从上到下找一条路径权值和最小,点可以到达的地方是周围八个格子类似数塔的dp,需要记录路径,当前行由上一行顶上的三个格子转移而来#include #include #include ... 阅读全文
posted @ 2014-11-02 17:22 LegendaryAC 阅读(384) 评论(0) 推荐(0)
HDU 1080
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1080二维最长公共子序列#include #include #include using namespace std ;char s1[105],s2[105];int tab[5][5]={{5,-1,-2,-1... 阅读全文
posted @ 2014-10-30 10:26 LegendaryAC 阅读(193) 评论(0) 推荐(0)
HDU 1069
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1069题意:n种木块问最多可以摆多高,每种有无数个,上面木块的长宽必须分别小于下面木块的长宽注意到每种无数个这个条件是虚的,其实只有三种。dp[i]表示以第 i 块为底可以摆放的最大高度#include #incl... 阅读全文
posted @ 2014-10-28 14:11 LegendaryAC 阅读(148) 评论(0) 推荐(0)
HDU 1074
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1074状压dp,记录路径求最小值的状压dp非常裸,5分钟就写好了,记录路径有点麻烦,之前没怎么处理过这种问题我的方法是用一个map建立当前状态和前驱状态的映射,输出要按字典序,因为已经按字典序从大到小排好了,所以状... 阅读全文
posted @ 2014-10-27 23:33 LegendaryAC 阅读(210) 评论(0) 推荐(0)
HDU 5067
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5067规定起点和终点的tsp问题,解法依然是状态压缩dp,在初始化和计算答案的时候略做改动即可#include #include #include #include using namespace std ;con... 阅读全文
posted @ 2014-10-19 16:58 LegendaryAC 阅读(187) 评论(0) 推荐(0)
HDU 4856
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4856西安邀请赛的一道题,这道题我们当时在现场最后1h才发现时状态压缩dp,惊险写出现在回头想发现当时有点呆,这种明显tsp模型的题目当时鬼迷心窍去写搜索,超时而不知悔改,实际是水题一道#include #incl... 阅读全文
posted @ 2014-10-18 23:09 LegendaryAC 阅读(207) 评论(0) 推荐(0)
HDU 5045
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5045题意:n个学生m道题,一个n*m的矩阵代表第n个学生解第m题AC的概率,任意两学生做题数差距不能大于1,问AC所有题目概率的最大值由于限制条件,所以一定是以n个学生为单位,一轮一轮的做题,直到做m题为止,这样... 阅读全文
posted @ 2014-10-06 16:33 LegendaryAC 阅读(616) 评论(0) 推荐(0)
HDU 5009
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5009题意:一个数列,每个点代表一种颜色,每次选一个区间覆盖,覆盖的代价是区间内颜色种类数的平方,直到覆盖整个数列,求最小花费思路:首先合并颜色相同的点,接着离散化颜色,做dp,dp[i]表示取到位置i的最小花费,... 阅读全文
posted @ 2014-10-03 20:59 LegendaryAC 阅读(615) 评论(0) 推荐(0)
HDU 5000
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5000题意:有n种属性,每种属性的数值可以是0-T[i],当一个人属性全部小于等于另一个人的属性时,小的那个人会被淘汰,问最多同时存在多少人比赛的时候没有想到这题的关键点,没出来也是情理之中解法:sum表示一个人的... 阅读全文
posted @ 2014-09-23 13:17 LegendaryAC 阅读(759) 评论(0) 推荐(0)
HDU 5001
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5001每次去掉要算的点,求出到达其他点的概率,就是不能到达这个点的概率开始想去算到达这个点的概率,再去减,不过这种方法证实是不对的,重复走的情况会重复计算#include #include #include #in... 阅读全文
posted @ 2014-09-14 09:33 LegendaryAC 阅读(593) 评论(0) 推荐(0)
HDU 3998
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3998求LIS的长度,并且求有多少组互不相交的LIS求组数用最大流建图如下:if(dp[i]==1)add(S,i,1) ; if(dp[i]==ans)add(i+n,T,1) ;if(j>i && dp[j... 阅读全文
posted @ 2014-07-21 22:57 LegendaryAC 阅读(560) 评论(0) 推荐(0)
CF 432D
摘要:http://codeforces.com/problemset/problem/432/D在前缀是后缀的前提下,求这个前缀在原串中出现了多少次出现的次数可以用dp求解,前缀是后缀直接用Next判断,较为综合的kmp考察,这题没写出来就是kmp基础不牢,不应该#include #include #i... 阅读全文
posted @ 2014-05-20 20:14 LegendaryAC 阅读(321) 评论(0) 推荐(0)
14年百度之星资格赛第四题
摘要:LabyrinthTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 519 Accepted Submission(s): 174Proble... 阅读全文
posted @ 2014-05-16 16:54 LegendaryAC 阅读(559) 评论(0) 推荐(0)
HDU 2292
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2292题意:1-n个节点,题目给出了完全二叉树的定义(这个定义似乎有歧义,此题以题目描述为准),且要保持最小堆性质(根节点小于左右子树内的任意元素),问有多少种不同组合解法:dp,dp[n]表示n个元素的合法排列数... 阅读全文
posted @ 2014-05-07 11:53 LegendaryAC 阅读(177) 评论(0) 推荐(0)