poj-1276(多重背包)裸题
    
            
摘要:有多种钱币,每种钱币有限多个,多重背包。附代码:#include <iostream>#include <string.h>#include <stdio.h>using namespace std;int dp[100005];int w[1000];int main(){ int n,m,a,b,cnt; while(cin >> n >> m){ cnt=0; memset(dp,0,sizeof(dp)); memset(w,0,sizeof(w)); for(int i=1;i<=m;i++){ ...
        
阅读全文
 
        
            
    背包入门(0-1背包,完全背包,多重背包)
    
            
摘要:推荐一篇好文章:http://blog.csdn.net/sj13051180/article/details/66876740-1背包,每件物品只有一个,对于每件物品只有取与不取两种情况,完全背包,每件物品无数多个,对于每件物品可以取任意多个。多重背包,每件物品有限多个,对于每件物品可以取任意多个。以poj-3624与poj-1276为原型,阐释三种背包的代码。0-1背包:#include <iostream>#include <stdio.h>using namespace std;int main(){ int dp[12900]; int n,m; int v[
        
阅读全文
 
        
            
    poj-3624(0-1背包)裸题
    
            
摘要:参考博客http://blog.csdn.net/sj13051180/article/details/6687674关于0-1背包与多重背包讲的很细,适合入门。贴我的代码:#include <iostream>#include <stdio.h>using namespace std;int main(){ int dp[12900]; int n,m; int v[3405]; int w[3405]; while(cin >> n >> m){ for(int j=0;j<=m;j++) dp[j]=0; f...
        
阅读全文
 
        
            
    【专题】概率dp-求期望
    
            
摘要:求期望两种题型。1.概率dp2.高斯消元这里有一篇很好的文章:http://kicd.blog.163.com/blog/static/126961911200910168335852/还有kb大神的专题:http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html然后是我AC的三道小题。全部是概率dppoj-2096dp[i][j]代表i,j到n,s的期望步数;(i*(s-j)/(n*s))*dp[i][j+1]中,i/(n*s)代表在i中取一个的概率,(s-j)/(n*s)代表在s-j中取一个,放到j+1中的概率.dp[i]
        
阅读全文
 
        
            
    dp第四题
    
            
摘要:#include <string.h>#include <stdio.h>#include <iostream>using namespace std;int dp[4050];int main(){ int n,a,b,c; while(cin >> n >> a >> b >> c) { memset(dp,-1,sizeof(dp)); dp[a]=1;dp[b]=1;dp[c]=1; for(int i=1;i<=n;i++) { if(i-a>0 && dp[i-a]!=-
        
阅读全文
 
        
            
    dp第三题
    
            
摘要:#include <iostream>#include <string.h>#include <stdio.h>using namespace std;int main(){ int n; int a[105]; int dp[105]; while(cin >> n) { memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { cin >> a[i]; } for(int i=1;i<=n;i++) { ...
        
阅读全文
 
        
            
    dp第二题
    
            
摘要:#include <iostream>#include <string.h>#include <stdio.h>using namespace std;int dp[100050];int main(){ int n; while(scanf("%d",&n)!=EOF) { dp[0]=1;dp[1]=1;dp[2]=1;dp[3]=1; for(int i=4;i<=n;i++) { dp[i]=(dp[i-1]%10007+dp[i-3]%10007); } cout << dp...
        
阅读全文
 
        
            
    dp第一题
    
            
摘要:因为对内分工的原因,我的dp一直很弱,最近觉得dp非常有趣,于是开始狂刷dp了。#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int dp[1051][1051];int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) { memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) dp[i][1]=1; for(int j=..
        
阅读全文