随笔分类 - dp
基础dp
摘要:都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。
阅读全文
摘要:题目描述 Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子: 1 2 3 4 5
阅读全文
摘要:想退役了~ Problem Description Jesus, what a great movie! Thousands of people are rushing to the cinema. However, this is really a tuff time for Joe who se
阅读全文
摘要:题目描述: 给定一串序列x[],其中的每一个Xi看作看作一颗珠子,每个珠子包含两个参数,head和tail,前一颗的tail值是后一个的head值,珠子呈现环形(是一条项链),所以最后一颗的tail是第一个珠子的head.当tail遇到对应的head时会放出 Xi.head*Xi.tail*X++i
阅读全文
摘要:石子合并不应该是个区间dp? 题目:There is an old stone game.At the beginning of the game the player picks n(1<=n<=50000) piles of stones in a line. The goal is to me
阅读全文
摘要:附题目链接:Bone Collector II Input The first line contain a integer T , the number of cases.Followed by T cases , each case three lines , the first line co
阅读全文
摘要:题目描述 给定一个 n个点 m 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。 输入格式 第一行两个正整数 n,,m 第二行 n 个整数,依次代表点权 第三至 m+2行,每行两个整数
阅读全文
摘要:题目大意:给你一颗生成树,求你将它改造为一个环,即每个节点的度为二,对于每一个节点来说,可以删除或增加边,每次操作的消耗均为1,求将它改造成环的最小消耗. Input: first line contains the number of test cases T( T<=10 ). Followin
阅读全文
摘要:在求最大连续和的基础上,求得连续序列的始末位置 要求:The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each
阅读全文
摘要:N位同学站成一排,音乐老师要请其中的(N−KN-KN−K)位同学出列,使得剩下的KKK位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K1,2,…,K,他们的身高分别为T1,T2,…,TKT_1,T_2,…,T_KT1,T2,…,TK,
阅读全文
摘要:继上次讲完求LCS长度后,来更新一篇具体求LCS的求法。 in: abcicba abdkscab out: abca 我们已经知道lcs中的状态转移方程为: for(int i=0;i<=a;i++) { for(int j=0;j<=b;j++) { if(i==0||j==0) { dp[i]
阅读全文
摘要:问题描述:给你一个字符串,问至少需要添加几个字符才能形成回文串。 in: 5Ab3bd out: 2 解释如:dAb3bAd 做法:将给出的字符串反向存一遍,然后找最长公共子序列,用原长减去该长度就是需要添加的字符数 由于长度n为[3,5000];开5000的二维数组会mle,所以我们用滚动数组,由
阅读全文
摘要:题目描述: 最近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务。久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完这最后一级。现在的问题是,xhd升掉最后一级还需n的经验值,xhd还留有m的忍耐度,每杀一个怪xhd会得到相应的经验,并减掉相应的忍耐度。当忍
阅读全文
摘要:The cows don't use actual bowling balls when they go bowling. They each take a number (in the range 0..99), though, and line up in a standard bowling-
阅读全文
摘要:题目描述:给出两个字符串,求两个字符串的公共子序列(不是公共子串,不要求连续,但要符合在原字符串中的顺序) in: abcfbc abfcab programming contest abcd mnp out: 4 2 0 状态转移方程: 如果s1[i]==s2[j] 则 c[i][j]=c[i-1
阅读全文
摘要:题目描述:求最长下降子序列的长度 in: 71 7 3 5 9 4 8 out: 4 解释:1 3 4 8/1 3 5 8 长度为四 这让我想到了hdu上导弹拦截那道题,是求最长上升子序列长度 其转移方程为: dp[i]=max(dp[i],dp[j]+1); 如果a[j]<a[i],那么dp[i]
阅读全文
摘要:最大连续和:给出一段序列,选出其中连续且非空的一段使得这段和最大。 stdin: 7 2 -4 3 -1 2 -4 3 stdout: 4 状态转移方程:dp[i]=max(dp[i-1]+a[i],a[i]) 如果dp(i-1)已经为负数,那么前i-1段就没有意义了,我们直接从a[i]重新开始取。
阅读全文
摘要:01背包和完全背包都是dp入门的经典,我的dp学的十分的水,借此更新博客的机会回顾一下 01背包:给定总容量为maxv的背包,有n件物品,第i件物品的的体积为w[i],价值为v[i],问如何选取才能是背包内的物品价值总和最大。 stdin: 5 1 2 3 4 5 5 4 3 2 1 stdout:
阅读全文
摘要:题目描述 有一棵点数为 N 的树,树边有边权。给你一个在 0~ N 之内的正整数 K ,你要在这棵树中选择 K个点,将其染成黑色,并将其他 的N-K个点染成白色 。 将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间的距离的和的受益。问受益最大值是多少。 输入格式 第一行包含两个整数 N,
阅读全文

浙公网安备 33010602011771号