「Vijos 1283」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔杖
佳佳的魔杖
背景
配制成功了珍贵的0号药水,MM的病治好了。轻松下来的佳佳意外的得到了一个好东西……那就是——一种非常珍贵的树枝。这些树枝可以用来做优质的魔杖!当然了,不能只做自己的,至少还要考虑到MM的对吧。选择怎样的切割方式来制作魔杖非常重要,关键问题是——一把魔杖既不能太长、又不能太短,且制作出来的魔杖不能有冲突……
描述
佳佳得到的这些树枝在属性上完全相同。每一个树枝都有n段(用1~n编号),给定了每段的长度L[i]和每段的魔力值M[i]。单独的一段是不可以从中间切开的,你可以做的就是选择一段或连续的几段,把它们作为一个整体切下来,再用来制作魔杖。但是一根魔杖的长度不能太长——不能大于给定的值hi;也不能太短——不能小于给定的值lo。
魔杖有一个奇怪的要求:如果某一根魔杖的制作材料是另一根魔杖的一部分,则这两根魔杖之间将发生冲突。比如说树枝有三段,从左到右的长度分别为4、 1、3,佳佳需要长度为4到5之间的魔杖。佳佳可以用一根树枝的前两段做出一个长度为5的魔杖,用一根树枝的后两段做出长度为4的魔杖;但他决不能用一根树枝的前两段做了魔杖后再单独使用另一根树枝的第一段做成魔杖,因为前者包含了后者的所有成分,这会导致冲突。
我们假设佳佳可以得到任意多这样的树枝。佳佳需要制作出若干个互不冲突的魔杖,使所有魔杖的魔力值之和最大。(魔杖的长度就是组成它的那些段的长度的总和,魔力值亦然)。
输入格式
第一行有三个用空格隔开的正整数,分别表示n、lo、hi。
第二行的n个用空格隔开的正整数就是L[1]、L[2]……L[n]。
第三行的n个用空格隔开的正整数就是M[1]、M[2]……M[n]。
输入文件以一个回车/换行符结尾。
输出格式
只用输出一个整数,表示能够获得的魔力值的最大值。
样例1
样例输入1
6 4 5
1 3 3 2 2 1
2 3 1 4 5 2
样例输出1
21
限制
1秒
提示
取\([1 3] [3 2] [2 2 1]\)做成魔杖。
得到最大权值\(2+3+1+4+4+5+2=21\)。
对于30%的数据,\(n\le10\);
对于50%的数据,\(n\le100\);
对于100%的数据,\(n<=1000,l_o\le h_i \le 2^{31}-1,L_i,M_i \le 100 000\)
来源
matrix67
思路
这是DP题,\(f[i][j]\) 表示左端点不超过i且右端点不超过j的最优方案。
很明显转移方程之一是\(f[i][j] = max( f[i - 1][j], f[i][j - 1] );\)
还有如果长度满足,可以\(f[i][j] = max( f[i][j], f[i - 1][j - 1] + 得到魔力值 );\)
话不多说,上代码——
代码
#include<bits/stdc++.h>
using namespace std;
#define MAXN 1005
#define LL long long
int n, lo, hi;
LL L[MAXN], M[MAXN];
LL f[MAXN][MAXN];
int main(){
scanf( "%d%d%d", &n, &lo, &hi );
for ( int i = 1; i <= n; ++i ) scanf( "%lld", &L[i] ), L[i] += L[i - 1];
for ( int i = 1; i <= n; ++i ) scanf( "%lld", &M[i] ), M[i] += M[i - 1];
for ( int i = 1; i <= n; ++i )
for ( int j = 1; j <= i; ++j ){
f[i][j] = max( f[i - 1][j], f[i][j - 1] );
if ( L[i] - L[j - 1] >= lo && L[i] - L[j - 1] <= hi ) f[i][j] = max( f[i][j], f[i - 1][j - 1] + M[i] - M[j - 1] );
}
printf( "%lld", f[n][n] );
return 0;
}
「Vijos 1283」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔杖的更多相关文章
- 「Vijos 1282」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法照片
佳佳的魔法照片 背景 佳佳的魔法照片(Magic Photo):如果你看过<哈利·波特>,你就会知道魔法世界里的照片是很神奇的.也许是因为小魔法师佳佳长的太帅,很多人都找他要那种神奇的魔法 ...
- 「Vijos 1285」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法药水
佳佳的魔法药水 背景 发完了k张照片,佳佳却得到了一个坏消息:他的MM得病了!佳佳和大家一样焦急万分!治好MM的病只有一种办法,那就是传说中的0号药水--怎么样才能得到0号药水呢?你要知道佳佳的家境也 ...
- 「Vijos 1284」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法阵
佳佳的魔法阵 背景 也许是为了捕捉猎物(捕捉MM?),也许是因为其它原因,总之,佳佳准备设计一个魔法阵.而设计魔法阵涉及到的最关键问题,似乎就是那些带有魔力的宝石的摆放-- 描述 魔法阵是一个\(n ...
- 「CSP-S模拟赛」2019第四场
「CSP-S模拟赛」2019第四场 T1 「JOI 2014 Final」JOI 徽章 题目 考场思考(正解) T2 「JOI 2015 Final」分蛋糕 2 题目 考场思考(正解) T3 「CQO ...
- #10471. 「2020-10-02 提高模拟赛」灌溉 (water)
题面:#10471. 「2020-10-02 提高模拟赛」灌溉 (water) 假设只有一组询问,我们可以用二分求解:二分最大距离是多少,然后找到深度最大的结点,并且把它的\(k\)倍祖先的一整子树删 ...
- #10470. 「2020-10-02 提高模拟赛」流水线 (line)
题面:#10470. 「2020-10-02 提高模拟赛」流水线 (line) 题目中的那么多区间的条件让人感觉极其难以维护,而且贪心的做法感觉大多都能 hack 掉,因此考虑寻找一些性质,然后再设计 ...
- 「CSP-S模拟赛」2019第三场
目录 T1 「POI2007」山峰和山谷 Ridges and Valleys 题目 考场思路(几近正解) 正解 T2 「JOI 2013 Final」 现代豪宅 题目 考场思路(正解) T3 「SC ...
- 「CSP-S模拟赛」2019第二场
目录 T1 Jam的计数法 题目 考场思路(正解) T2 「TJOI / HEOI2016」排序 题目 考场思路(假正解) 正解 T3 「THUWC 2017」随机二分图 题目 考场思路 正解 这场考 ...
- 「CSP-S模拟赛」2019第一场
目录 T1 小奇取石子 题目 考场思路 正解 T2 「CCO 2017」专业网络 题目 考场思路 题解 T3 「ZJOI2017」线段树 题目 考场思路 正解 这场考试感觉很奇怪. \(T1.T2\) ...
随机推荐
- [kuangbin带你飞]专题九 连通图C - Critical Links UVA - 796
这道题就是要求桥的个数. 那么桥相应的也有判定的定理: 在和u相邻的节点中,存在一个节点是最小的时间戳都比 当前u的访问次序要大,也就是说这个点是只能通过果u到达,那么 他们之间相邻的边就是的桥 #i ...
- H3C 广域网的作用
- SuperSocket 中的日志系统
当 SuperSocket boostrap 启动时,日志系统将会自动启动. 所以你无须创建自己的日志工具,最好直接使用SuperSocket内置的日志功能. SuperSocket 默认使用log4 ...
- 机器学习-RBF高斯核函数处理
机器学习-RBF高斯核函数处理 SVM高斯核函数-RBF优化 重要了解数学的部分: 协方差矩阵,高斯核函数公式. 个人建议具体的求法还是看下面的核心代码吧,更好理解,反正就我个人而言,烦躁的公式,还 ...
- uni-app学习记录02-属性绑定.for循环
<template> <view class="content"> <text> 我是首页 </text> <!-- 输出纯字 ...
- Python--day42--MySQL外键定义及创建
什么是外键? 外键的创建:constraint 外键名 foregin key ("表1值1",“ 表1值2”) references 表2的名字(“值1”)
- Vue 设置style属性
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CodeForces 1216C(假的计算几何+扫描线)
传送门 •题意 给你三个矩形,依次编号为 1,2,3: 判断 矩形1 是否被 矩形2 和 矩形3 完全覆盖: 如果没有完全覆盖,输出 "YES",反之,输出 "NO&qu ...
- springboot 配置文件中属性变量引用方式@@解析
这种属性应用方式是field_name=@field_value@. 两个@符号是springboot为替代${}属性占位符产生,原因是${}会被maven处理,所以应该是起不到引用变量的作用. @@ ...
- linux 快速和慢速处理
老版本的 Linux 内核尽了很大努力来区分"快速"和"慢速"中断. 快速中断是那些能够很 快处理的, 而处理慢速中断要特别地长一些. 慢速中断可能十分苛求处理 ...