由于能放两次,那么分类,

1、连续使用,(这个直接O(n^2)暴力)

2、分开使用。

分开使用的话,首先暴力枚举,用T时间,能从第1个位置,唱到第几首歌,然后剩下的就是从pos + 1, n这个位置,用T时间,最多能省多少体力。这个可以预处理 + rmq搞了。

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm> #define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL; #include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
#include <bitset>
const int maxn = 1e3 + ;
int t[maxn];
int val[maxn];
int T, H, n;
int mx[maxn];
int dp_max[maxn][];
void init() {
for (int i = ; i <= n; ++i) {
int tot = , useTime = ;
for (int j = i; j <= n; ++j) {
useTime += t[j];
if (useTime > T) break;
tot += val[j];
}
mx[i] = tot;
}
for (int i = ; i <= n; ++i) {
dp_max[i][] = mx[i];
}
for (int j = ; j < ; ++j) {
for (int i = ; i + ( << j) - <= n; ++i) {
dp_max[i][j] = max(dp_max[i][j - ], dp_max[i + ( << (j - ))][j - ]);
}
}
}
int ask(int be, int en) {
if (be > en) return ;
int k = (int)log2(en - be + 1.0);
return max(dp_max[be][k], dp_max[en - ( << k) + ][k]);
}
void work() {
scanf("%d%d%d", &T, &H, &n);
int hurt = ;
for (int i = ; i <= n; ++i) {
scanf("%d%d", &t[i], &val[i]);
hurt += val[i];
}
init();
int mxsave = , ans = ;
for (int i = ; i <= n; ++i) {
int useTime = ;
int tot = ;
for (int j = i; j <= n; ++j) {
useTime += t[j];
if (useTime > * T) {
break;
}
tot += val[j];
}
mxsave = max(mxsave, tot);
}
ans = H - (hurt - mxsave);
for (int i = ; i <= n; ++i) {
int tot = , useTime = ;
for (int j = i; j <= n; ++j) {
useTime += t[j];
if (useTime > T) break;
tot += val[j];
int res = ask(j + , n);
mxsave = max(mxsave, tot + res);
}
}
ans = max(ans, H - (hurt - mxsave));
ans = max(ans, );
cout << ans << endl;
} int main() {
#ifdef local
freopen("data.txt", "r", stdin);
// freopen("data.txt", "w", stdout);
#endif
work();
return ;
}

scau 17967 大师姐唱K的固有结界 分类暴力 + RMQ的更多相关文章

  1. scau 17967 大师姐唱K的固有结界

    17967 大师姐唱K的固有结界 该题有题解 时间限制:1000MS  内存限制:65535K 提交次数:41 通过次数:8 收入:107 题型: 编程题   语言: G++;GCC;VC Descr ...

  2. 【机器学习】K近邻算法——多分类问题

    给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例,这K个实例的多数属于某个类,就把该类输入实例分为这个类. KNN是通过测量不同特征值之间的距离进行分类.它的的思路是:如 ...

  3. 02-19 k近邻算法(鸢尾花分类)

    [TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...

  4. 算法---数组总结篇2——找丢失的数,找最大最小,前k大,第k小的数

    一.如何找出数组中丢失的数 题目描述:给定一个由n-1个整数组成的未排序的数组序列,其原始都是1到n中的不同的整数,请写出一个寻找数组序列中缺失整数的线性时间算法 方法1:累加求和 时间复杂度是O(N ...

  5. 面试题40:最小(大)的K个数

    剑指offer40题,同时这也是面试高发题目 2019.4 蚂蚁金服问道:求1000万个数据中的前K个数. 思路: 1.直接上排序算法,然后我们就取排好顺序的前K个即可.但是单考虑快排,时间复杂度也要 ...

  6. 总结分享十大iOS开发者最喜爱的库 分类: ios相关 app相关 2015-04-03 16:43 320人阅读 评论(0) 收藏

    该10大iOS开发者最喜爱的库由"iOS辅导团队"成员Marcelo Fabri组织投票选举而得,参与者包括开发者团队,iOS辅导团队以及行业嘉宾.每个团队都要根据以下规则选出五个 ...

  7. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem K. KMC Attacks 交互题 暴力

    Problem K. KMC Attacks 题目连接: http://codeforces.com/gym/100714 Description Warrant VI is a remote pla ...

  8. ACM-ICPC 2018 青岛赛区现场赛 K. Airdrop && ZOJ 4068 (暴力)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4068 题意:吃鸡游戏简化为二维平面上有 n 个人 (xi,yi) ...

  9. Coursera台大机器学习课程笔记3 – 机器学习的分类和机器学习的可能性

    第三讲比较简单,参考:http://www.cnblogs.com/HappyAngel/p/3466527.html 第四讲很抽象,尤其是第四个视频,目的仍然是为了证明机器学习是可能的,不过这个博主 ...

随机推荐

  1. java的gradle项目的基本配置

    plugins { id 'org.springframework.boot' version '2.1.4.RELEASE' id 'java' } apply plugin: 'io.spring ...

  2. HDU1520 Anniversary party —— 树形DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 Anniversary party Time Limit: 2000/1000 MS (Java ...

  3. 包、修饰符、内部类、匿名内部类(java基础知识十)

    1.package关键字的概述及作用 * A:为什么要有包     * 将字节码(.class)进行分类存放  * B:包的概述     *   * C:包的作用     * 包名要定义在第一行,   ...

  4. codeforces 437A. The Child and Homework 解题报告

    题目链接:http://codeforces.com/problemset/problem/437/A 题目意思:给出四个选项A.B.C.D选项的内容描述,要求选出符合以下条件的一项. (1)如果某个 ...

  5. html5--6-14 CSS3中的颜色表示方式

    html5--6-14 CSS3中的颜色表示方式 实例 每个参数 (red.green 以及 blue) 定义颜色的强度,可以是介于 0 与 255 之间的整数,或者是百分比值(从 0% 到 100% ...

  6. STL Algorithms 之 unique

    C++的文档中说,STL中的unique是类似于这样实现的: template <class ForwardIterator> ForwardIterator unique ( Forwa ...

  7. 关于return

    return ;  相当于执行完跳转url后停止,return无返回值仅作停止作用,是指停止当前方法,是方法的终点 return null ;  代表引用类型的空值

  8. Flask app.config 的配置

    原理如下:   image.png 1.通过调用自定义config.py文件中config字典,可以得到一个类, 这个类里面定义的都是类变量,这些变量就是自定义的一些配置项. 如下config.py ...

  9. 洛谷P1999三国游戏

    题目:https://www.luogu.org/problemnew/show/P1199 仔细想想,两方都拿不到每个武将的配对中最大的: 本来想的是如果有武将a,b,对应最大ma,mb,次大ca, ...

  10. 使用lsyncd配置数据库备份多异地同步

    lsyncd配置文件 settings { logfile = "/var/log/lsyncd.log", --日志路径 status = "/var/log/lsyn ...