随笔分类 -  SPOJ

摘要:统计一个只由大写字母构成的字符串的,子串数目,这里指的是子串不是子序列,可以不连续,请注意然后我按照计数DP的思想,dp[i][j]表示长度为i的子串,最后一个字母为j然后为了去重,每一次dp的时候,记录这个时候最后一位所在的位数,而且之前用一个后缀记录之后有没有该字母,这样每次,从上一次的j所处的... 阅读全文
posted @ 2014-08-11 10:19 KRisen 阅读(233) 评论(0) 推荐(0)
摘要:给定一个数字串,问有多少种拆分方法,题目所谓的拆分,就是分成若干个子块,每个块的和 即为各个数字相加,当前块的和一定要小于等于后面的块的和比如1117 就有这些[1-117], [1-1-17], [1-11-7], [1-1-1-7], [11-17],and [111-7]肯定是计数DP,而且二... 阅读全文
posted @ 2014-08-10 15:21 KRisen 阅读(190) 评论(0) 推荐(0)
摘要:本来是想找个主席树的题目来练一下的,这个题目虽说可以用主席树做,但是用这个方法感觉更加叼炸天第一次做这种离线方法,所谓离线,就在把所有询问先存贮起来,预处理之后再一个一个操作像这个题目,每个操作要求区间不同元素的个数,我盲目去查的话,某个元素在之前如果出现了,我把他算在当前区间也不好,算在之前的区间... 阅读全文
posted @ 2014-07-30 23:11 KRisen 阅读(1273) 评论(0) 推荐(0)
摘要:这个题目给定N航班的发出时间和结束时间以及价值,要求不冲突时间的最大价值第一时间想到经典的N方DP,即对航班按发出时间排一下序之后每个i对前面的都扫一遍时间过不了N有10万,只能想优化了,一开始想了个用树状数组记录每次加入某个航班之后 后面的所有在结束时间后的区间全部可以加一个最大值,但是首先时间区... 阅读全文
posted @ 2014-07-28 23:48 KRisen 阅读(310) 评论(0) 推荐(0)
摘要:当初第一次做的是FPLICE这个题,当时就觉得要用图论去搜索,但是当时陷入死思维就是 dp[][]两个维度都是点,这样就违背了题目的本意,题目给定了一个时间T,在不超过时间T的情况下求最小的消耗,这不就是背包嘛。。。即拿T做容量,在图上面 设置 dp[i][j]表示i点的时候 j时间的最小消耗。这样... 阅读全文
posted @ 2014-06-13 17:13 KRisen 阅读(261) 评论(0) 推荐(0)
摘要:这个题目搁置了这么久,终于搞完了。给n个人分配n个课程,已经告诉了你n个人对哪几门感兴趣,问最多有多少种分配方式我刚开始都没找到这怎么还可以状态dp,哪来的状态转移,想用暴力DFS,果断TLE的妥妥的。后来给殷犇发了这个题目,他还说你刷个这水题还刷得这包子劲,这题目就是后一行的状态由前一行得到,枚举当前这一行分配的状态,如果可行,就从后面的状态加过来由于状态只是从上一行转移过来,所以可以用滚动数组,用p表示当前,则!p就为上一行的,每次结束再把p置反即可。#include #include #include #define ll long longusing namespace std;int 阅读全文
posted @ 2014-03-17 11:18 KRisen 阅读(245) 评论(0) 推荐(0)
摘要:用1*2的方块去覆盖3*n的方块http://www.cnblogs.com/staginner/archive/2011/12/16/2290020.html玉斌大神的题解其实我昨晚想得跟斌神差不多,先是3*f[n-2],而且跨方块的有两种 所以要+2*f[n-4],但是没有继续考虑跨3方块 4方块的情况,其实多画一下,发现情况是一样的,一样是要*2f[n-2*k]于是最后的递推方程就是 f[n]=3*f[n-2]+2*f[n-3]...+2*f[0];#include #include #include #define ll long longusing namespace std;ll 阅读全文
posted @ 2013-12-03 11:26 KRisen 阅读(287) 评论(0) 推荐(0)
摘要:题目http://www.spoj.com/problems/CHOCOLA/把一整块巧克力分成一个一个单元,掰断每一横行有个代价值,掰断每个纵行也有个代价值,要你求最后的总代价值最小这个题目放在DP的题目列表里面,起初我是按DP的思想去解,先考虑只有一个单元的巧克力,再考虑2个单元,再是3个。。当把一个橫行都处理完再处理第二行,但是在处理第二行的时候就出问题了,到底此时是掰断橫行还是纵行,这里的操作会对之后造成影响,所以我这样,不是真正的最优子结构,因此这样DP就要出问题。后来发现原来直接贪心就可以了。为了使总代价值最小,肯定要先掰断代价值最大的,这样使得那些代价值大的操作不会进行太多,因此 阅读全文
posted @ 2013-12-01 17:06 KRisen 阅读(335) 评论(0) 推荐(0)