ArcTan

dfs
随笔 - 16, 文章 - 117, 评论 - 6, 引用 - 0
数据加载中……

poj 1837(DP背包)

http://poj.org/problem?id=1837

一个简单的题目浪费了那么多时间啊,不行啊。怎样提高效率啊,thinking & coding都不行啊。要理解清楚算法的每个细节啊。

我擦啊,尼玛;阿。

把背包九讲研究透吧!!!!!!!!!!少年啊
wangs要注意啊:
      1、做一个题目就要自己读完,理解完啊。
      2、一定要thinking啊,thinking && thinking 啊啊啊啊啊
      3、coding之前还要thinking如何code啊!!!!!!

#include<stdio.h>
#include
<string.h>
#include
<math.h>
#include
<vector>
#include
<algorithm>
#define maxx 25005
using namespace std;
int C,G;
int c[25],g[25];
long long f[maxx],h[maxx];
int main()
{
    
while (scanf("%d%d",&C,&G)==2)
    {
        
for (int i=1;i<=C;i++)
            scanf(
"%d",&c[i]);
        
for (int j=1;j<=G;j++)
            scanf(
"%d",&g[j]);

        memset(f,
0,sizeof(f));
        f[
10000]=1;

        
for (int i=1;i<=G;i++)
        {
            
for (int j=0;j<maxx ;j++ )
                h[j]
=f[j],f[j]=0;
            
for (int j=0;j<maxx ;j++ )
                
if (h[j])
                    
for (int k=1;k<=C ;k++ )
                        f[j
+c[k]*g[i]]+=h[j];
        }
        printf(
"%I64d\n",f[10000]);
    }
    
return 0;
}

大大大的SB啊

posted on 2012-07-18 14:46 wangs 阅读(155) 评论(0)  编辑 收藏 引用 所属分类: ACM-DP


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理