40分,其他tle 目前再想有什么方法可以优化,希望有大佬指点谢谢

P1064 [NOIP2006 提高组] 金明的预算方案

``` int a[71][33001]; ``` 你不觉得要开 long long 吗
by tangrunxi @ 2020-02-09 11:33:10


@[zhangthreewind](/user/304374)
by tangrunxi @ 2020-02-09 11:33:16


@[tangrunxi](/user/231147) 可是他说输出小于200000
by Mamba_ever_out @ 2020-02-09 11:37:34


@[zhangthreewind](/user/304374) 输出的是这个 ``` cout<<dp[n]; ``` 我说a数组开小了。
by tangrunxi @ 2020-02-09 11:39:35


@[tangrunxi](/user/231147) 我的a[i][j]表示的是第i组物品(每组就是一个主产品和各种附属产品在j个金钱的情况下能获得的最高价值)数量为60 金钱最多为32000,应该不会超的啊
by Mamba_ever_out @ 2020-02-09 11:43:45


上面01背包位置写反现在改正为 ```gcc for(int k=1;k<=gs[b[i]];k++){ //里面就相当于看成 01背包 ,在这其中已经算(默认已经算进主产品) for(int j=n-v[b[i]];j>=1;j--){ // 购买了主产品,所以对金币计算会有所改动 if(j-v[wz[b[i]][k]]>=0) dp[j] = max(dp[j],dp[j-v[wz[b[i]][k]]]+p[wz[b[i]][k]]*v[wz[b[i]][k]]); } } ```
by Mamba_ever_out @ 2020-02-09 13:31:23


|