1281: 邪能炸弹

时间限制: 1 秒  内存限制: 128 MB
提交: 222  解决: 80

题目描述

正在入侵艾泽拉斯的古尔丹偶然间得到了一颗邪能炸弹,经过研究,他发现这是一颗威力极其巨大且难以控制的炸弹。但是精通邪能的古尔丹突然有了一个大胆的想法,他对炸弹进行了一些小小的改造。这使得炸弹需要n天的充能才能爆炸,在这n天中,每天炸弹的邪能值都会产生波动,波动值为xi,古尔丹唯一能控制的是使邪能值增加xi或减少xi,如果邪能值小于0或大于MAX,那么炸弹将会损坏并失效。机智如古尔丹当然会做出最优选择。而作为反抗军的情报人员,你知道炸弹的初始邪能值为begin,寿命为n天以及每天的波动值xi。你需要知道在第n天炸弹可能达到的最大邪能值。

输入

第一行为一个整数T,表示有T组测试实例。
对于测试实例:
第一行为三个整数 n,begin,MAX。1<=n<=50,0<=begin<=MAX,1<=MAX<=1000。
第二行一次为n个整数 x1,x2,x3,x4...xn。1<=xi<=1000

输出

对于每组测试实例输出一行,表示第n天炸弹可能达到的最大邪能值,如果炸弹无法避免邪能值低于0或者高于MAX则输出-1。

样例输入

2
3 5 10
5 3 7 3 3 8
5 2 10

样例输出

10
-1
我也很郁闷为什么没做出来,要不是他的干扰或许能多A一道吧,还是自己能力不够
很简单的一个dp吧,,,没想到这样写,一直想的直接推没推出来
 #include<bits/stdc++.h>
using namespace std;
bool dp[][];
int main()
{
int t,n,m,i,j,k;
int a[],S,MAX;
cin>>t;
while(t--){
memset(dp,,sizeof(dp));
cin>>n>>S>>MAX;
for(i=;i<=n;++i) cin>>a[i];
dp[][S]=;
for(i=;i<n;++i){
for(j=;j<=;++j){
if(dp[i][j]){
if(j+a[i+]>=&&j+a[i+]<=MAX)
dp[i+][j+a[i+]]=;
if(j-a[i+]>=&&j-a[i+]<=MAX)
dp[i+][j-a[i+]]=;
}
}
}k=-;
for(i=MAX;i>=;--i)
if(dp[n][i]) {k=i;break;}
cout<<k<<endl;
}
return ;
}

河南省多校联盟二-C的更多相关文章

  1. 河南省多校联盟二-F 线段树+矩阵

    ---恢复内容开始--- 1284: SP教数学 时间限制: 2 秒  内存限制: 128 MB提交: 24  解决: 4 题目描述 输入 输出 对于每组数据的2操作,输出一行对1e9 + 7取模的答 ...

  2. 河南省多校联盟二-A

    1279: 简单的背包问题 时间限制: 1 秒  内存限制: 32 MB提交: 361  解决: 20 题目描述 相信大家都学过背包问题了吧,那么现在我就考大家一个问题.有n个物品,每个物品有它的重量 ...

  3. 山东省ACM多校联盟省赛个人训练第六场 poj 3335 D Rotating Scoreboard

    山东省ACM多校联盟省赛个人训练第六场 D Rotating Scoreboard https://vjudge.net/problem/POJ-3335 时间限制:C/C++ 1秒,其他语言2秒 空 ...

  4. 2017.12.10《“剑锋OI”普及组多校联盟系列赛(14)#Sooke#Kornal 的课余时间 》分析报告

    报告内容如下 - - [导语] ------ 太晚了,时间也紧,一切尽量从简吧 PS:本文题目来自剑锋OI 所以废话也不多说,进入正题吧,代码直接跟在题目后边儿,主要分析在代码前,次要的就写在代码后面 ...

  5. (2016弱校联盟十一专场10.3) D Parentheses

    题目链接 把左括号看成A右括号看成B,推一下就行了.好久之前写的,推到最后发现是一个有规律的序列. #include <bits/stdc++.h> using namespace std ...

  6. (2016弱校联盟十一专场10.3) B.Help the Princess!

    题目链接 宽搜一下就行. #include <iostream> #include<cstdio> #include<cstring> #include<qu ...

  7. (2016弱校联盟十一专场10.3) A.Best Matched Pair

    题目链接 #include<cstdio> #include<cstring> #include<algorithm> #include<stack> ...

  8. 2016弱校联盟十一专场10.5---As Easy As Possible(倍增)

    题目链接 https://acm.bnu.edu.cn/v3/contest_show.php?cid=8506#problem/A problem description As we know, t ...

  9. 2016弱校联盟十一专场10.3---We don't wanna work!(STL--set的使用)

    题目链接 https://acm.bnu.edu.cn/v3/contest_show.php?cid=8504#problem/C 代码如下: #include <iostream> # ...

随机推荐

  1. 在MFC下面实际演示CCriticalSection 的使用

    Q:CCriticalSection是什么? A:CCriticalSection是一种线程同步策略 或者说技术 或者方法  总之呢就是这么个意思.... 参考资料: http://blog.csdn ...

  2. appium ios 自动化测试

    iOS自动化测试:Appium 从入门到实践https://www.jianshu.com/p/43f858180557appium自动化测试iOS Demohttps://www.jianshu.c ...

  3. Element 中表单非必填数据项 必须为数字的验证问题

    Element-ui 的el-form组建中,自带基本的验证功能,比如某些项必填的验证,直接加入rules 规则中即可,如下实例: 在页面中书写如下: <el-form-item label=& ...

  4. hdu6162 Ch’s gift

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6162 题目: Ch’s gift Time Limit: 6000/3000 MS (Java ...

  5. [C#]浮点数除零无法捕获异常的解决办法

    解决方法: //运算前先检查被除数是否为零,为零则手动抛出除零异常 if (numberB == 0.0) { throw new DivideByZeroException(); } Result ...

  6. JVM年轻代(转)

    本文转自:http://my.oschina.net/xishuixixia/blog/133850 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完 ...

  7. 第三方库(JSONModel)出现file not found

    http://stackoverflow.com/questions/5198905/h-file-not-found 具体方法: 在导航栏中 点击 Product --> Clean 成功之后 ...

  8. ONVIF学习-ONVIF开发框架搭建(C++)

    第一步.下载gsoap 从gsoap官网(http://www.genivia.com/products.html#notice)下载最新版gsoap(博主用的是gsoap_2.8.45).gsoap ...

  9. No module named _tkinter

    https://www.douban.com/note/524197380/?type=like

  10. 20145216史婧瑶《Java程序设计》第一次实验报告

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...