摘要: 分析:因为要洗完所有同种颜色的才能洗下一种颜色,所以先按颜色排序,对每种颜色做一次01背包。取两个最少时间的最大值,累加 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<map> 5 #include<string> 6 #include<iostream> 7 #define N 1100 8 using namespace std; 9 int dp[N][N],w[N][N],cnt[N],sum[N];10 int ma 阅读全文
posted @ 2012-10-22 21:10 silver__bullet 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 01背包统计第k优解,多开一维的数组,用来记录第几优解,然后每次更新的时候合并一下。。。 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #define N 1100 5 #define K 100 6 using namespace std; 7 int dp[N][K],w[N],v[N],s[N]; 8 bool cmp(int a,int b){ 9 return a>b;10 }11 int main(){12 int n,m,k,T;13 cin>> 阅读全文
posted @ 2012-10-22 13:02 silver__bullet 阅读(167) 评论(0) 推荐(0) 编辑