题目地址:HDU 5414
题意:要求判断字符串s能否通过添加若干个字符得到字符串t
思路:这个题看起来复杂,其实仔细一分析,成功转化只包含两种情况。第一种因为要求插入的新字符和它前面的字符c不同,如果t中有x个连续的c,那么在s中也必须有x个连续的c;第二种是s必须是t的一个不连续子串。#include
#include
#include <string....
分类:
其他好文 时间:
2015-08-21 15:37:23
阅读次数:
135
1.题目描述:点击打开链接
2.解题思路:本题是完全背包问题的一种变形。根据题意描述,每种物品的价值随着A[i]是线性变化的,但是并不随着B[i]线性变化,B[i]仅仅是在第一次挑选第i件物品是才算入,其他时候均不算入。因此,这里的状态要比普通的完全背包增加一个维度:是否是第一次选第i件物品,即用(i,j,flag)表示当前背包容量为j时,是否为第一次选第i件物品时的最大价值。那么不难得到如下状...
分类:
其他好文 时间:
2015-08-21 13:46:58
阅读次数:
174
最后一场多校,记录一下。。。
最近一个月听周的《晴天》听疯了。。单曲循环一千万次- -!
这场是朝鲜金策工业大学出的题,感受到了完全不同的画风。。有两点印象深刻第一,题目描述不拖泥带水,非常清晰,可读性好,题目表述非常简洁。感觉就应该这样啊,,见过太多题目强行加入一个奇怪的故事背景,搞啥?自认为增加了趣味性,其实适得其反。。这一点真是值得学习。
第二,标程写得很棒,想说,这种风格调教出来的代码才是给...
分类:
其他好文 时间:
2015-08-21 13:32:39
阅读次数:
158
1.题目描述:点击打开链接
2.解题思路:本题实际是是已知一张无向图,问长度小于等于m的路径一共有多少条。可以通过建立转移矩阵利用矩阵快速幂解决。其中,转移矩阵就是输入时候的邻接矩阵,同时多增加最后一列,都置为1,表示从i开始的,长度不超过M的路径的答案总数(最后一行的1~n列为全0行,可以理解为空集),那么把转移矩阵自乘M-1次后就是路径长度为M的转移矩阵(这里的路径长度指的是顶点的个数,顶点...
分类:
其他好文 时间:
2015-08-21 11:26:58
阅读次数:
166
题目链接:点击打开链接
题目大意:有A,B两个字符串,现在有一种操作可以在A的任意一个字符x后面增加一个字符y(x!=y),问能不能将A变为B。
首先如果A可以变成B,那么A就一定是B的一个子序列,这个可以在O(n+m)的时间内算出。
如果A是B的子序列之后,判断增加的字符中是不是含有不能增加的情况,我们只需要判断B从开始的一段连续的相同的字符串,是不是在A的开头也存在,如果存在,那么就是可...
分类:
其他好文 时间:
2015-08-21 11:26:28
阅读次数:
143
1.题目描述:点击打开链接
2.解题思路:本题要求判断字符串s能否通过添加若干个字符得到字符串t。首先,可以知道,s必须是t的一个子串(注意:不是连续子串)。第二,由于插入的新字符和它前面的字符c不同,因此如果t中有cnt个连续的c,那么在s中也必须有cnt个连续的c。因此,只要能够满足这2个条件,就一定可以成功实现转化。
那么该如何做呢?两者可以结合起来判断,用i,j分别表示s,t串...
分类:
其他好文 时间:
2015-08-21 09:33:31
阅读次数:
196
题目链接:点击打开链接
题目大意:有m块钱,有n种货物,每种货物都有一个wi的价钱,假设买了x个i中货物,会花wi*x的钱,同时老板还会赠送a*x+b的糖果,问怎么样买礼物,可以让糖果数最多。
dp[i][j][0]当买到第i种的时候,花钱是j且没有买过i能得到最多的糖果数。
dp[i][j][1]当买到第i种的时候,花钱是j且买过i能得到的最多的糖果数。
按照货物数遍历从1到n,那么就可...
分类:
其他好文 时间:
2015-08-21 09:32:12
阅读次数:
128
原题链接http://acm.hdu.edu.cn/showproblem.php?pid=5410因为他每买一件物品就会得到Ai颗糖,每买一种物品就会得到Bi颗糖。有两个价值。。所以我们应该先用一次01背包把两个价值统一起来。。。因为01背包中每种物品只能取一次。。。。然后我们用多重背包来决定应该...
分类:
其他好文 时间:
2015-08-21 07:01:07
阅读次数:
258
HDU 5412 CRB and Queries(区间第K大 树套数 按值建树)...
分类:
其他好文 时间:
2015-08-20 21:00:49
阅读次数:
269
【HDOJ 1005】 CRB and His Birthday
背包 商场卖东西 没件物品有对应的价值 同时由于超市老板跟你是好绩优。。。每买一件物品给你a个糖果 同时如果购买某物品 会给对应的b种糖果 即买x个i 可以得到ai*x+bi个糖果 问怎么能得到最多糖果
开始是想开个bool标记每个状态某糖果买每买 还有在该状态是否第一次买某种糖果 写着写着写不好了……
...
分类:
其他好文 时间:
2015-08-20 20:57:39
阅读次数:
189