题目大意,给出一些单词和一个句子,问这个句子最少去掉多少个字母后完全由给定的单词组成。dp[i]表示句子的前i位最少去掉多少个字母才能满足条件。则状态转移如下。最后一个字母有删掉和保留两种选择,假如删掉,那么dp[i] = dp[i-1] + 1。如果不删的话,枚举每个结尾为str[i]的单词看是否...
分类:
其他好文 时间:
2014-07-16 19:16:39
阅读次数:
220
题目链接:点击打开链接
题意:
给定13张各不相同的扑克牌,问最少需要几手打出
每手打出的牌必须符合以下任意标准之一:
1、任意单张
2、相同数字2张
3、相同数字3张
4、相同数字4张
5、相同数字3张+相同数字2张
6、连续5个及5个以上的数字
思路:
状压dp,dp[i]表示选了i的状态的最小牌数
然后要预处理出能一次打出的状态,这样不会t。。
#inclu...
分类:
其他好文 时间:
2014-07-15 22:45:44
阅读次数:
341
被dp搞得不行不行的,找状态方程太难了。
本题只是个基础题还好;
状态方程为: if(s[i-1]==k[j-1])
dp[i][j]=dp[i-1][j-1]+1;
else
dp[i][j]=dp[i-1][j]>=dp[i][j-1]?dp[i-1][j]:dp[i][j-1];
#include
#include
int main()
{
int a,b,i,j;
char...
分类:
其他好文 时间:
2014-07-15 22:32:28
阅读次数:
274
本题一看似乎是递归回溯剪枝的方法,我一提交,结果超时。
然后又好像是使用DP,还可能我剪枝不够。
想了很久,无奈忍不住偷看了下提示,发现方法真多,有贪心,DP,有高级剪枝的,还有三分法的,八仙过海各显神通啊。
坏习惯了,没思考够深入就偷看提示了。
幸好及时回头,还不需要看别人的代码了。自己做出来之后,有空看看多种解法的代码也好。
然后我想出自己的思路了,使用贪心,剪枝,DP综合优化下,呵...
分类:
其他好文 时间:
2014-07-15 12:26:44
阅读次数:
215
题目:vijosP1836HYS与七夕节大作战题意:n个对象,每价值为vi,比重pi,总容量100分析:类似背包重量的比重pi为实数,不能作为下标,所以改变dp对象将求容量100内的最大价值→求相应价值的最小容量,则容量第一个≤100的价值,为符合条件的价值最大的值状态:dp[v]:价值为v的..
分类:
其他好文 时间:
2014-07-15 12:03:16
阅读次数:
211
状态压缩DP真心不会写,参考了别人的写法。先预处理出合理状态,我们用二进制表示可以放棋子的状态,DP[I][J][K]:表示现在处理到第I行,J:表示第I行的状态,K表示现在为止一共放的棋子数量。#include#include#define N 1111using namespace std;t....
分类:
其他好文 时间:
2014-07-14 19:56:24
阅读次数:
254
还以为多牛逼呢,。。就是长了点。。dp弄得像枚举一样。贴一个优秀的代码,#include#include#include#includeusing namespace std;int n; //候选人数int m; //当选人数int dp[21][801]; //dp[j][k]:取j个候...
分类:
其他好文 时间:
2014-07-14 19:46:42
阅读次数:
205
一、基本概念dip : device independent pixels ,设备无关像素。既然是设备无关,我还是觉得device靠谱。dp :就是dippx : 像素不多说 dpi :dots per inch , 直接来说就是一英寸多少个像素点。常见取值 120,160,...
分类:
其他好文 时间:
2014-07-14 17:48:45
阅读次数:
347
题意:有N个格子,1~N,起点在0,每个格子有一个状态(0,1,2,3),每次可以跨[a,b]步,
问走完N个格子需要步数的期望,每次尽量走小的步数,即尽量走a步,不能则走a+1,……
状态0意味着你不能踏进对应的网格。
状态1意味着你可以??步入网格用你的左腿。
状态2意味着你可以??步入网格用你的右腿。
状态3意味着你可以进入网格用任何你的腿,而接下来的步骤中,您可以使用任何的...
分类:
其他好文 时间:
2014-07-14 17:20:02
阅读次数:
220