摘要: 题意: 给你两条街,上面的街编号从 1-n 下面的也是,然后告诉你他们的一些边, 让你从中尽可能选出多的边,使他们两两之间没有交点。分析: LIS 的变形,把一条街看成有序的,求令一条街的最长递增子序列, 因为当 上面 i < j 时 有 f[i]<f[j]。View Code #include<stdio.h>#include<string.h>int d[500005];int l[500005];int bis(int len,int x){ int low=0,high=len-1,mid; while(low<=high) { mid=(l. 阅读全文
posted @ 2012-05-01 15:53 'wind 阅读(328) 评论(0) 推荐(0)
摘要: 题意: 给你一段含有 n 个数的序列,将它分成 m 份,问你这 m 份的最大值可以是多少。分析: 状态转移方程: dp[i][j]=max(dp[i][j-1],dp[i-1][k]) 1<k<j dp[i][j]表示 前 j 个数分成 i 组的最大值 ,其中,第 J 个数包含在分好的组里面。 可以用滚动数组 将上面的改成一维的。 View Code #include<stdio.h>#include<string.h>#define INF 9999999#define max(a,b)(a)>(b)?(a):(b)int a[1000007];in 阅读全文
posted @ 2012-05-01 10:31 'wind 阅读(481) 评论(0) 推荐(0)