上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 26 下一页
摘要: 挑战程序设计竞赛 2.3 动态规划。需要稍加思考 序列dp,贪心,离散,递推min优化,滚动数组。 阅读全文
posted @ 2015-10-17 11:26 陈瑞宇 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 挑战程序设计竞赛 2.3 动态规划。需要稍加思考的题目。 dp转移顺序,定义优化,多重背包判断存在性 阅读全文
posted @ 2015-10-16 22:39 陈瑞宇 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 挑战程序设计竞赛 2.3 动态规划 需要稍加思考的题目。 Dilworth定理,偏序,LIS 阅读全文
posted @ 2015-10-16 17:07 陈瑞宇 阅读(413) 评论(0) 推荐(0) 编辑
摘要: 挑战程序设计竞赛 2.3 动态规划 优化递推关系。 多重背包,倍增,优化定义,单调队列,同余划分,迷之小优化 阅读全文
posted @ 2015-10-15 20:27 陈瑞宇 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 在所有避难所都有至少一只队伍的情况,总移动距离最小。把队伍的位置和人都排序。会发现,对于最后一个队伍i和最后一个避难所j,Case 1:pos[j]>=pos[i],那么i是距离j最近的一只队伍,Case 2:pos[j]<pos[i],那么j是距离i最近的一个避难所。dp[i][j]表示第i个人,... 阅读全文
posted @ 2015-10-11 22:00 陈瑞宇 阅读(235) 评论(0) 推荐(0) 编辑
摘要: A Cdgamebrute force...BDrbalance贪心,每次选最前面的-变成+,相当于后面所有的负值+2。CTreestrat考虑集中去抓一个Red Token,以这个Token为根把树提起来,以B的Token为的根的子树是走不到,(树形很重要)而且走不到的结点只会越来越多。求出B中结... 阅读全文
posted @ 2015-10-11 13:35 陈瑞宇 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 区间dp,两个str一起考虑很难转移。看了别人题解以后才知道是做两次dp。dp1。str1最坏情况下和str2完全不相同,相当于从空白串开始刷。对于一个区间,有两种刷法,一起刷,或者分开来刷。规定[i][i-1]为空串,这样一起刷可以归结为第二种情况。合并的时候,大的区间的次数using names... 阅读全文
posted @ 2015-10-10 13:33 陈瑞宇 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 动态区间询问kth,单点修改。区间用线段树分解,线段树上每条线段存一颗平衡树。不能直接得到kth,但是利用val和比val小的个数之间的单调性,二分值。log^3N。修改则是一次logN*logN。总体是Nlog^2N+Mlog^3N。一个值可以对应多个名次。每次查询严格小于val的个数。把之前的T... 阅读全文
posted @ 2015-10-09 23:24 陈瑞宇 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 题目要求可转化为查询一个区间内有多少数比val大(或者小)。区间用线段树分解(logN),每个区间维护一rank树。rank可用BIT查询,往BIT里面插值,为了保证不同区间的BIT互不影响要先离散。首先进行分治,分治的同时归并排序完成离散并计算保存出每个元素和其他元素构成的逆序对iv[i]。(据说... 阅读全文
posted @ 2015-10-08 15:35 陈瑞宇 阅读(465) 评论(0) 推荐(0) 编辑
摘要: A,水题不多说。#includeusing namespace std;//#define LOCALint main(){#ifdef LOCAL freopen("in.txt","r",stdin);#endif int n,t; scanf("%d%d",&n,&t); i... 阅读全文
posted @ 2015-10-07 21:14 陈瑞宇 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题意:求树上的一条费用不超过m的路径,使得总长度尽量大。人参第一发树分治,紫书上思路讲得比较清晰,这里不再赘述。实现的时候,用一个类似时间戟的东西,记录结点首次访问的时间,并保存结点序列。合并的时候用map组织有序表。和Defense Lines类似复杂度O(nlog^2n)#includeusin... 阅读全文
posted @ 2015-10-07 13:46 陈瑞宇 阅读(509) 评论(1) 推荐(0) 编辑
摘要: 当两个城市之间有安全的道路的时候,他们是互相可到达的,这种关系满足自反、对称和传递性,因此是一个等价关系,在图论中就对应一个连通块。在一个连通块中,当前点是那个并不影响往其他连通块的点连边,因此只要记录当前连通块内有哪些点。nusing namespace std;const int maxn = ... 阅读全文
posted @ 2015-10-06 22:49 陈瑞宇 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 难点在于状态设计,从左向右一本书一本书的考虑,每本书的决策有两种拿走或者留下,对于拿走后的书,之后要放回,但是决策过程中不知道到往哪里放,虽然前面的书的种类确定,可能是往后面放更优,而后面的书的类型还不确定。对于所有拿出来的书,最后会增加多少段只和书的种类有关。所以我们用s记录留下书的种类,等到所有... 阅读全文
posted @ 2015-10-06 22:22 陈瑞宇 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 和Heroes Of Might And Magic 相似,题目的询问是dp的一个副产物。距离是不好表示成状态的,但是可以换一个角度想,如果知道了从一个点向子树走k个结点的最短距离,那么就可以回答走x距离能访问到的最大结点数量。当访问了一棵子树,想要访问子树外的结点时,一定要先从子树的根结点出来。状... 阅读全文
posted @ 2015-10-05 23:53 陈瑞宇 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 容易想到dp[i][j]表示在第i行j个路口的开始走最大高兴值。每次可以向左走,或者向右边走,然后向北走。(或者直接往北)向左走到,状态转移为dp[i][j] = dp[i][k] + happy[i][k][j](为了方便处理,i从1开始编号,0行dp值存0)处理出前缀和,happy[i][k][... 阅读全文
posted @ 2015-10-05 23:01 陈瑞宇 阅读(372) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 26 下一页