
ACM
文章平均质量分 55
沉碎的小五狼
这个作者很懒,什么都没留下…
展开
-
最长上升子序列(LIS)
O(n^2)算法:#include#includeusing namespace std;#define INF 0x3f3f3f3f#define N 1005int a[N],g[N];int main(){ int n,i,ans=0,L,R,mid; scanf("%d",&n); for(i=1;i<=n;i++) {原创 2012-08-22 02:16:28 · 638 阅读 · 0 评论 -
FZU 1001 Duplicate Pair
Time Limit: 1000 mSec Memory Limit : 65536 KBProblem DescriptionAn array of length n, with address from 1 to n inclusive, contains entries from the set {1,2,...,n-1} and there's exactly two elemen原创 2013-04-19 01:36:42 · 848 阅读 · 0 评论 -
HDU 2602 Bone Collector (0-1背包)
方法一: 时间N*V 空间N*V 内存开销大#includeusing namespace std;#define N 1005#define V 1005int T,n,v;int c[N],w[N],dp[N][V];int main(){ scanf("%d",&T); while(T--) { scanf("%d%d",&n原创 2013-04-19 22:00:50 · 513 阅读 · 0 评论 -
HDU 1114 Piggy-Bank (完全背包)
完全背包是0-1背包的拓展。方法一:内存空间开销大#include#includeusing namespace std;#define INF 0X3F3F3F3Fint T,E,F,R,N,dp[505][10005];struct Pt{ int p; int w;}P[505];int main(){ scanf("%d",&T);原创 2013-04-20 16:30:09 · 626 阅读 · 0 评论 -
HDU 1159 Common Subsequence (动态规划LCS)
LCS 最长公共子序列的运用。LCS 重点就是理解状态转移方程:对于每一次,都有dp[i][j] = Max ( dp[i-1][j-1] + match(s1[i],s2[j]), dp[i-1][j], dp[i][j-1] );i为字符串s1遍历的当前位置,j为字符串s2遍历的当前位置。 dp[i][j]表示,字符串s1到第i个,字符串s2到第j个时,当原创 2013-04-20 23:50:34 · 559 阅读 · 0 评论 -
FZU 2030 括号问题
用动态规划的方法解题思路:用一个二维数组dp[][],dp[i][j]表示遍历到第i+1个字符时,有j个未匹配的‘(’的方案有多少种。所以,当s[i]=’(‘时,当前有j个未匹配的‘(’的方案数 == 还没遍历这个字符时的j-1个未匹配的‘(’方案数。即,dp[i][j] = dp[i-1][j-1]。 当s[i]=’)‘时,当前有j个未匹配的‘(’的方案数原创 2013-04-21 11:33:53 · 772 阅读 · 0 评论