传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=107

没想到太不应该了,真的不应该啊!

f[i][j][k]表示前i个包,第一个包里共有j大小的物品,第二个包里共有k大小的物品是否成立,则方程为:

f[i][j][k] = f[i - 1][j - a[i]][k] || f[i - 1][j][k - a[i]] || f[i - 1][j][k];

观察方程,可以省去数组a改用单独一个变量,并使用滚动数组,详见代码。

#include <cstdio>

const int maxn = ;

int n, a, s, ans = ;
bool f[][]; inline int minn(int aa, int ss) {
return aa < ss? aa: ss;
}
inline int max3(int aa, int ss, int dd) {
aa = aa > dd? aa: dd;
return aa > ss? aa: ss;
} int main(void) {
freopen("baleshare.in", "r", stdin);
freopen("baleshare.out", "w", stdout);
scanf("%d", &n);
f[][] = true;
for (int i = ; i <= n; ++i) {
scanf("%d", &a);
s += a;
for (int j = s; j >= ; --j) {
for (int k = s - j; k >= ; --k) {
if (j >= a) {
f[j][k] = f[j][k] || f[j - a][k];
}
if (k >= a) {
f[j][k] = f[j][k] || f[j][k - a];
}
}
}
} for (int j = ; j <= s; ++j) {
for (int k = ; j + k <= s; ++k) {
if (f[j][k]) {
ans = minn(ans, max3(j, k, s - j - k));
}
}
}
printf("%d\n", ans);
return ;
}

为什么会变成这样呢,明明是一道水题。。。

[USACO 2012 Jan Silver] Bale Share【DP】的更多相关文章

  1. [USACO 2012 Jan Silver] Delivery Route【拆点】

    传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=106 这道题还真是完全没思路,真的不知道怎么做,但是看了题解后恍然大悟. ...

  2. bzoj258 [USACO 2012 Jan Gold] Bovine Alliance【巧妙】

    传送门1:http://www.usaco.org/index.php?page=viewproblem2&cpid=111 传送门2:http://www.lydsy.com/JudgeOn ...

  3. bzoj2581 [USACO 2012 Jan Gold] Cow Run【And-Or Tree】

    传送门1:http://www.usaco.org/index.php?page=viewproblem2&cpid=110 传送门2:http://www.lydsy.com/JudgeOn ...

  4. bzoj 1575: [Usaco2009 Jan]气象牛Baric【dp】

    完了不会dp了 设f[i][j]为以i结尾,有j个时的最优值,辅助数组g[i][j]为s选了i和j,i~j中的误差值 转移是f[j][i]=min(f[k][i-1]+g[k][j]) #includ ...

  5. bzoj 1700: [Usaco2007 Jan]Problem Solving 解题【dp】

    很像贪心的dp啊 这个定金尾款的设定让我想起了lolita和jk制服的尾款地狱-- 设f[i][j]为从j到i的付定金的最早月份然后从f[k][j-1]转移来,两种转移f[i][j]=min(f[i] ...

  6. USACO翻译:USACO 2012 JAN三题(2)

    USACO 2012 JAN(题目二) 一.题目概览 中文题目名称 叠干草 分干草 奶牛联盟 英文题目名称 stacking baleshare cowrun 可执行文件名 stacking bale ...

  7. USACO翻译:USACO 2012 JAN三题(1)

    USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery c ...

  8. USACO翻译:USACO 2012 FEB Silver三题

    USACO 2012 FEB SILVER 一.题目概览 中文题目名称 矩形草地 奶牛IDs 搬家 英文题目名称 planting cowids relocate 可执行文件名 planting co ...

  9. Kattis - honey【DP】

    Kattis - honey[DP] 题意 有一只蜜蜂,在它的蜂房当中,蜂房是正六边形的,然后它要出去,但是它只能走N步,第N步的时候要回到起点,给出N, 求方案总数 思路 用DP 因为N == 14 ...

随机推荐

  1. 微信接入登录功能access_token流程记录

    提示:只有认证过的订阅号或者服务号才能获取access_token. 1.app微信登录第一步是,app调起来微信客户端,通过app端的配置,引入一个微信类库, 2.授权成功后,微信会返回你一个cod ...

  2. Linux面试题完整修订附加答案

    册一: 1.Linux挂载Winodws共享文件夹 第一步:先在Windows上创建一个共享目录        Windows系统IP是172.16.18.56;共享文件夹:E:\test       ...

  3. 【stl学习笔记】vector

    vector是定义于namespace std内的template: namespace std { template<class T, class Allocator = allocator& ...

  4. WEKA简单介绍与资源汇总

    简单介绍 Weka是一个开源的数据挖掘软件,里面集成了很多经典的机器学习算法,在高校和科研机构中受到了广泛的应用. 具体的简单介绍和简单的使用请參考文档:<使用Weka进行数据挖掘>. 学 ...

  5. Visual Studio安装空白 和 VS Code打开失败解决方案

    微软博文:https://docs.microsoft.com/zh-cn/visualstudio/install/troubleshooting-installation-issues?view= ...

  6. random模块的使用

    random模块用于生成随机数 import random print random.random() #用于生成小于1大于0的数 print random.randint(1,5) #生成大于等于1 ...

  7. MFC程序打开文件对话框出错的问题解决

    前几天从网上下了个图像分析的mfc小程序,是VC6的 用VC6在本地编译生成都没问题.执行起来弹出一个未处理的错误,程序崩溃退出. 想起来原来遇到过打开文件对话框方面的问题,当时项目时间紧张未能深究. ...

  8. python 【第二篇】python基本数据类型

    python数据类型 python的数据类型和大多数编程语言一样,有int,float,long,string但是python有三个特殊的数据类型:列表,元组,字典 如果不知道你的数据类型有什么方法: ...

  9. iOS 用xib自定义View

      网上有很多关于实现用xib自定义View,那我为什么还要写呢?第一,我用他们的方法都没有实现.第二,用xib遇到了很多问题,想分享给大家.    用xib自定义View:FHCustomView ...

  10. 嵌入式开发之davinci--- 8148 中dsp在dsp_drv.c中的processdata()加算法出现下边缘条纹问题

    (1)问题原因 dsp在alglink_priv.c中做灰度处理发现,下面出现条纹,后面发现是cache 缓存没及时写进内存问题 (2)解决办法 for(frameId=0; frameId<f ...