vijos 1037 ***
链接:点我
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int v = + ;
const int MaxN = + ;
int N, sum, num[MaxN], dp[][v];
int main() {
int i, j, k;
cin >> N;
for(i = ; i < N; ++i) {
cin >> num[i];
sum += num[i];
}
memset(dp, -, sizeof(dp));
dp[][] = ;
int a;
for(i = ; i < N; ++i) {
a = i % ;
memset(dp[a], -, sizeof(dp[a]));
for(j = ; j <= sum; ++j) {
//1.不放第i块水晶;
if(dp[a ^ ][j] > -)
dp[a][j] = dp[a ^ ][j];
//2.放进去后,高塔变矮塔(第i块放在矮塔上了);
if(num[i] > j && dp[a ^ ][num[i] - j] > -)
dp[a][j] = max(dp[a][j], dp[a ^ ][num[i] - j] + j);
//3.放进去后,高塔仍高(第i块放在矮塔上);
if(j + num[i] <= sum && dp[a ^ ][j + num[i]] > -)
dp[a][j] = max(dp[a][j], dp[a ^ ][j + num[i]]);
//4.放进去后,高塔更高(第i块放在高塔上).
if(j >= num[i] && dp[a ^ ][j - num[i]] > -)
dp[a][j] = max(dp[a][j], dp[a ^ ][j - num[i]] + num[i]);
}
}
if(dp[a][] > )
cout << dp[a][] << endl;
else
cout << "Impossible" << endl;
}
vijos 1037 ***的更多相关文章
- vijos 1037 背包+标记
描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔. Mr. F有N块水晶,每块 ...
- 搭建双塔(vijos 1037)
描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念“9?11”事件,Mr. F决定自己用水晶来搭建一座双塔. Mr. F有N块水晶,每块 ...
- dp式子100个……
1. 资源问题1-----机器分配问题F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2. 资源问题2------01背包问题F[I,j]:=max(f[i- ...
- dp方程
1. 资源问题1 -----机器分配问题 F[I,j]:=max(f[i-1,k]+w[i,j-k]) 2. 资源问题2 ------01背包问题 F[I,j]:=ma ...
- 【动态规划】Vijos P1037 搭建双塔
题目链接: https://vijos.org/p/1037 题目大意: 给n块砖的长度(n<=100),问从中任选m块砖能否建成2个相同高度的塔. 能的话求最高高度,不能输出 Impossib ...
- 【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募
http://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://vijos.org/p/1825 直接上姜爷论文... #include< ...
- vijos P1915 解方程 加强版
背景 B酱为NOIP 2014出了一道有趣的题目, 可是在NOIP现场, B酱发现数据规模给错了, 他很伤心, 哭得很可怜..... 为了安慰可怜的B酱, vijos刻意挂出来了真实的题目! 描述 已 ...
- vijos P1780 【NOIP2012】 开车旅行
描述 小\(A\)和小\(B\)决定利用假期外出旅行,他们将想去的城市从\(1\)到\(N\)编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市\(i\)的海拔高度为 ...
- 【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险
http://www.lydsy.com/JudgeOnline/problem.php?id=2541 https://vijos.org/p/1366 loli秘制大爆搜_(:з」∠)_坑了好久啊 ...
随机推荐
- phpcms 调取全站文章
路径:phpcms/module/content/classes/content_tag.class.php 添加如下方法 /** * 列表页标签:主要返回的是主表中数据与附表中数据 * @param ...
- powerdesigner设置表主键列为自动增长。
powerdesigner 版本12.5 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties ———>columens ,双击 ...
- Linux unzip解压文件到某个目录下面
1,例如我想解压Metinfo5.2.zip 到某一个文件夹下,执行下面的命令就可以了 sudo unzip MetInfo5.2.zip -d metinfo-bak
- E. Tetrahedron(数学推导)
E. Tetrahedron 分类: AC路漫漫2013-08-08 16:07 465人阅读 评论(0) 收藏 举报 time limit per test 2 seconds memory lim ...
- [Effective JavaScript 笔记] 第13条:使用立即调用的函数表达式创建局部作用域
function wrapElements(a){ var res=[],i,n; for(i=0,n=a.length;i<n;i++){ res[i]=function(){return a ...
- [Effective JavaScript 笔记]第18条:理解函数调用、方法调用及构造函数调用之间的不同
面向对象编程中,函数.方法.类的构造函数是三种不同的概念. JS中,它们只是单个构造对象的三种不同的使用模式. 三种不同的使用模式 函数调用 function hello(username){ ret ...
- hiho #1288 微软2016.4校招笔试题 Font Size
#1288 : Font Size 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Steven loves reading book on his phone. The ...
- 组合数学or not ---- n选k有重
模板问题: 1. 取物品 (comb.pas/c/cpp) [问题描述] 现在有n个物品(有可能相同),请您编程计算从中取k个有多少种不同的取法.[输入] 输入文件有两行,第一行包含两个整数n,k(2 ...
- log2取整效率测试
RMQ问题中有个ST算法,当然还有个标准算法.LCA问题可以转化为带限制的RMQ(RMQ+-1)问题来解决.我们姑且认为这些问题的时间复杂度是查询$O(1)$的.但是,注意到对于RMQ(/+-1)问题 ...
- 安装mac os x时about a second remaining解决方法
转自: http://www.hongkiat.com/blog/clean-install-mavericks/ During the installation process, you may e ...