摘要: dp,先将材料按以终点为关键字升序排 设f[i,j]为过山车到建到位置i在用了j元钱所得到的最大价值,然后 1 var x,y,v,w:array[0..10010] of longint; 2 f:array[0..1010,0..1010] of longint; 3 l,n,k,m,j,i,a 阅读全文
posted @ 2014-01-24 22:52 acphile 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 考状态的dp 我的方法可能比较奇怪 设f[i,j]表示第i个月解决j个问题可以最多解决到第几个问题 容易知道,答案(月份)不会超过2n+1; f[i,j]=max(f[i-1,k]+j) 复杂度为O(n^3) 代码如下 1 var f:array[0..1000,0..500] of longint 阅读全文
posted @ 2014-01-23 22:16 acphile 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 两道很不错的dp 3186很神似回文词,合并石子之类的问题; 一开始不知道怎么在dp方程中体现权值天数,很来才想起来 对于一段区间[i,j],里面的东西必然是要卖完的 又因为只能从两头开始卖,所以 dp[i,j]=max(dp[i+1,j],dp[i,j-1])+sum[i,j]; 这样就体现出先后 阅读全文
posted @ 2014-01-21 22:56 acphile 阅读(113) 评论(0) 推荐(0) 编辑
摘要: bzoj1057本质上是求最大子矩阵; 第一问是一个经典的O(n2)dp 第二问就是最大子矩阵,回眸一下当年卡了我很久的问题; 首先穷举显然不行(这不废话吗?); 首先我们预处理每个点可以最大向上延展到哪里; 然后我们一行一行看每个点能以最大延展高度向左右延展到多少 这其中的最大值即answer; 阅读全文
posted @ 2014-01-21 22:38 acphile 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 好了,我的数论渣爆了………… 首先[n,m]内的round number显然就是f[m]-f[n-1] 即问0~x内有多少round number; 设x的二进制位数为t; 首先很好分析出在这个范围 若某数的二进制位数<t,则首位1不动,后面组合即可; 然后被卡在当二进制位数为t的round num 阅读全文
posted @ 2014-01-21 22:21 acphile 阅读(155) 评论(0) 推荐(0) 编辑
摘要: bzoj1012 线段树水题 bzoj1207 LIS水题 bzoj2190 挡住,即 bzoj1601 已被删除的水题? bzoj1607 线段树细节题,搞清楚特判即可 bzoj1008 快速幂妥妥的 bzoj1452 裸的二维树状数组 阅读全文
posted @ 2014-01-21 22:09 acphile 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 进入splay tree的学习中; 据说splay tree在理论上功能十分强大,好好学; splay首先一定是一棵BST,所以记不得的时候画个图就明白; 首先总结一下splay基本的操作左旋,右旋; 设节点x,其父节点y 左旋:保留x的右子树,y的左子树,将y插入到x的x的左子树上并原来x的左子树 阅读全文
posted @ 2014-01-18 21:54 acphile 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 一月上旬献给期末考试了…… 下旬开始刷题 poj3277 按高度排序,区间离散化+线段树; poj3279 仔细思考一下,每个点最多只可能打1次,确定第一行的敲击情况由每一行的上一行得出这行的敲击情况; 所以,二进制穷举第一行即可 O(2^m*mn) 注意字典顺序很坑; poj3617 贪心即可 O 阅读全文
posted @ 2014-01-18 20:55 acphile 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 看来以后用pascal的函数要小心了; 简简单单pos其实时间复杂度是二次方级的…… 今天学习的是KMP——字符匹配算法; 这两道题也都很简单,都是为这个算法练手的, 最朴素的匹配显然是穷举起始位置然后看是否匹配,复杂度O(nm)不尽人意 kmp的思想就是尽可能利用之前匹配的信息进行匹配。 具体分析 阅读全文
posted @ 2013-12-25 21:13 acphile 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 一道不错的dp题 就是最小修改代价,使序列变为一个非下降序或非上升(由于数据较弱直接求非下降即可,当然非上升非下降本质是一样的) 观察可得到,修改后得到的数列中的元素最后一定都在原序列中; 由此我们可以将原数列排序离散化; 在dp[i,j]表示新序列到第i个元素修改成原序列第j小的数所用的代价 易得 阅读全文
posted @ 2013-12-20 23:36 acphile 阅读(217) 评论(0) 推荐(0) 编辑