FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14980    Accepted Submission(s): 6618 Special Judge Problem Description FatMouse believes that the fatter a mouse is, the faster…
Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度.并且能够拦截任意速度的导弹,但是以后每一发炮弹都不能高于前一发的高度,其拦截的导弹的飞行速度也不能大于前一发.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 在不能拦截所有的导弹的情况下,我们当然要选择使国家损失最小.也就是拦截导弹的数量最多的方案.但是拦截导弹数量的最多的方案有可能有多个,如果…
题目描述 给定一个长度为N的序列S,S的每个元素pi是一个二元组(xi,yi),定义pi<pj当且仅当xi<xj并且yi<yj,求S的最长上升子序列长度 输入格式 第一行一个N,表示一共有N个元素 接下来有N行,每行包含两个正整数xi,yi 输出格式 输出一行一个整数,代表序列S的最长上升子序列的长度 一道很好的模板题,比较入门吧 CDQ分治+线段树/树状数组维护最大值就好了 #include<cstdio> #include<cstring> #include&…
题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20885 题意: 求二维最长严格递增子序列. 题解: O(n^2)的算法很好想,不过这里会t掉,只能O(nlogn) 于是用二分来维护: 先把所有的数按x递增排序,x相同的按y递减排序(这里之所以要按y递减排序是因为为了写代码方便,递减的话你后面基本就只要考虑y的大小,如果不递减,你还要考虑x的大小的,具体的可以自己思考一下) 排完序之后我们接下来就只考虑y的大小…
Another Longest Increasing Subsequence Problem 有两种思路. 思路一: 考虑到如果只有一维,那么可以用f[s]表示长度为s时,最后一个数是多少,把这个想法拓展到二维,即f[s]表示长度为s时,最后一个点的集合,也就是说有多个点,但是这多个点是有顺序,x递增,y递减,并且每次加点进来的时候,随时保持这个顺序. 关于怎么处理点的集合,可以用平衡树来实现,这里用map来代替,而且map自带二分查找的功能. 算法实现:采用二分答案的方法,初始区间是(0,an…
Beautiful People Special Judge Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statistic Next Problem Problem Description The most prestigious sports club in one city has exactly N members. Each of its members…
Constructing Roads In JGShining's Kingdom Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 23467    Accepted Submission(s): 6710 Problem Description JGShining's kingdom consists of 2n(n is no mo…
521. "North-East" Time limit per test: 0.5 second(s)Memory limit: 262144 kilobytes input: standardoutput: standard The popular music band of international fame "North-East" is coming to Berland! This news has spread all over the countr…
题目:acdream 1216 Beautiful People 题意:每一个人有两个值,能力值和潜力值,然后要求一个人的这两个值都严格大于第二个人的时候,这两个人才干呆在一块儿,给出很多人的值,求最多有多少个人? 分析:非常easy想到是个单调非增模型,假设用O(n*n)的写法的话,会超时! 那么我们就要用二分优化来找. 我们能够先按第一个值 x 从小到大排序,然后按第二个值从大到小排序,这种话找出的最长个数是没有错的.(想想为什么) 假如这样一个例子: 5 1 10 2 12 3 5 3 1…
双倍快乐 题目描述 Illyasviel:"你想要最长不下降子序列吗?" star-dust:"好啊!" Illyasviel:"老板,给我整两个最长不下降子序列,要最大的." 求序列 a 中的两个不相交的不下降子序列使得他们的元素和的和最大,子序列可以为空. 注 1:序列 a 不下降的定义是不存在 l<r 且 al​>ar​ 注 2:两个子序列不相交的定义是:不存在 ai​ 即在第一个子序列中也在第二个子序列中. 输入描述 第一行一…