
SummerDP
XuKathy
这个作者很懒,什么都没留下…
展开
-
HDU 2577 -How to Type
题目链接题目分析题意输入数据的组数t,每组是一行包含大写字母和小写字母的字符串,求键入此字符串的最少按键次数。完成键入后,CapsLK键必须是关闭的。思路用子问题定义状态,dpo[M]表示结束后CapsLK键为为开启状态,键入长度为M字符串的最少按键次数,dpc[M]表示结束后CapsLK键为关闭状态,键入长度为M字符串的最少按键次数。最后dpo[M]要+1。代码#include<stdio.h>原创 2016-08-02 10:35:23 · 479 阅读 · 0 评论 -
HDU 1159 -Common Subsequence
题目链接题目分析题意每行输入两个字符串,求这两个字符串的最长公共子序列。思路子序列: 举例:abdfieeow 中(按顺序)adf、abow等都是其子序列。 最长子序列是动态规划(DP)的典型例子。 LCS(x,y)即字符串x和y的最长公共子序列。 当i=0或是j=0时 dp[i][j]=0 当a[i-1]==b[j-1]时 dp[i][j]=dp[i-1][j-1]+1 当a[i-原创 2016-08-01 16:28:17 · 416 阅读 · 0 评论 -
HDU 2602 -Bone Collector
题目链接题目解析题意输入数据的组数T,每组数据包含3行,第1行输入骨头的数量N和背包的体积V,第二行输入N个整数代表每个骨头的价值,第三行输入N个整数代表每个骨头的体积。思路01背包问题的特点:每种物品只有一个,可以选择放或者不放。用子问题定义状态,dp[n][v]表示前n件物品放入一个容量为v的背包可以获得的最大价值。代码#include#include#incl原创 2016-08-01 17:25:36 · 467 阅读 · 0 评论 -
HDU3351 -Seinfeld
题目链接题目解析题意每行字符串满足平稳条件(括号匹配)需要转变的方向的最小次数。当输入’-‘符号(一个或多个)时程序结束。思路将输入的字符计数: 遇到’{‘: l++; 遇到’}’: 若l>0:l–; 若l<=0:l++,res++(}变成{); res+l/2即为所求。代码#include<stdio.h> #include<algorithm>using namespace st原创 2016-08-02 13:34:01 · 424 阅读 · 1 评论 -
CodeForces 55D-Beautiful numbers
题目链接题目分析题意输入t组数据,每组数据包含2个整数l和r,输出从l到r范围的beautiful numbers(即能被自身各个数位上的非零数字整除的数)的数量。思路一个数能被它各个数位上的非零数字整除,转化为可以被它们的最小公倍数整除。1到9的最小公倍数是2520。 2 =1*2 3=1*3 6=2*3 4=2*2 5=1*5 7=7*1 8=4*2=2*2*2 9=3*3 最原创 2016-08-17 19:46:16 · 569 阅读 · 0 评论 -
POJ 1157-LITTLE SHOP OF FLOWERS
题目链接题目分析题意将F束花插入V个花瓶中,每个花瓶只能插一束花,每束花有编号,若编号i<j,则花束i插在j的左边,求插完后的最大美观值。思路用数组a[maxn][maxn]保存输入的美观值。 重用数组a,a[i][j]表示i+1束花插入到j+1个花瓶(即花束0~i插入花瓶0~j)的最大美观值。 a[0][0]=a[0][0],a[0][j]=max(a[0][j-1],a[0][j]),0<j原创 2016-08-19 14:17:42 · 639 阅读 · 0 评论 -
HDU 1506-Largest Rectangle in a Histogram
题目链接题目分析题意每个矩形的宽都为1,输入n个矩形的高度a[i],求最大矩形的面积。思路找出a[i]左边和右边连续的大于等于高度a[i]的宽度和,然后与a[i]相乘的最大值即为所求。用l[i]表示比a[i]大的数连续的最左边的位置, r[i]表示比a[i]大的数连续的最右边的位置 。 代码#include<stdio.h>#define LL long long#define N 10000原创 2016-08-19 20:02:47 · 687 阅读 · 0 评论