scau 17967 大师姐唱K的固有结界 分类暴力 + RMQ
由于能放两次,那么分类,
1、连续使用,(这个直接O(n^2)暴力)
2、分开使用。
分开使用的话,首先暴力枚举,用T时间,能从第1个位置,唱到第几首歌,然后剩下的就是从pos + 1, n这个位置,用T时间,最多能省多少体力。这个可以预处理 + rmq搞了。
![](/assets/blank.gif)
![](/assets/blank.gif)
#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 + 20; int t[maxn]; int val[maxn]; int T, H, n; int mx[maxn]; int dp_max[maxn][20]; void init() {for (int i = 1; i <= n; ++i) {int tot = 0, useTime = 0;for (int j = i; j <= n; ++j) {useTime += t[j];if (useTime > T) break;tot += val[j];}mx[i] = tot;}for (int i = 1; i <= n; ++i) {dp_max[i][0] = mx[i];}for (int j = 1; j < 20; ++j) {for (int i = 1; i + (1 << j) - 1 <= n; ++i) {dp_max[i][j] = max(dp_max[i][j - 1], dp_max[i + (1 << (j - 1))][j - 1]);}} } int ask(int be, int en) {if (be > en) return 0;int k = (int)log2(en - be + 1.0);return max(dp_max[be][k], dp_max[en - (1 << k) + 1][k]); } void work() {scanf("%d%d%d", &T, &H, &n);int hurt = 0;for (int i = 1; i <= n; ++i) {scanf("%d%d", &t[i], &val[i]);hurt += val[i];}init();int mxsave = 0, ans = 0;for (int i = 1; i <= n; ++i) {int useTime = 0;int tot = 0;for (int j = i; j <= n; ++j) {useTime += t[j];if (useTime > 2 * T) {break;}tot += val[j];}mxsave = max(mxsave, tot);}ans = H - (hurt - mxsave);for (int i = 1; i <= n; ++i) {int tot = 0, useTime = 0;for (int j = i; j <= n; ++j) {useTime += t[j];if (useTime > T) break;tot += val[j];int res = ask(j + 1, n);mxsave = max(mxsave, tot + res);}}ans = max(ans, H - (hurt - mxsave));ans = max(ans, 0);cout << ans << endl; }int main() { #ifdef localfreopen("data.txt", "r", stdin); // freopen("data.txt", "w", stdout); #endifwork();return 0; }
View Code
转载于:https://www.cnblogs.com/liuweimingcprogram/p/6411617.html
scau 17967 大师姐唱K的固有结界 分类暴力 + RMQ相关推荐
- scau 17967 大师姐唱K的固有结界
17967 大师姐唱K的固有结界 该题有题解 时间限制:1000MS 内存限制:65535K 提交次数:41 通过次数:8 收入:107 题型: 编程题 语言: G++;GCC;VC Des ...
- 17967 大师姐唱K的固有结界
17967 大师姐唱K的固有结界 该题有题解 时间限制:1000MS 内存限制:65535K 提交次数:41 通过次数:8 收入:107 题型: 编程题 语言: G++;GCC;VC Descr ...
- Wework考虑出售旗下公司,特斯拉能看电影和唱K!|每周硅谷热闻
硅谷Live / 实地探访 / 热点探秘 / 深度探讨 大家好!国庆小长假即将来啦,硅谷小伙伴们没得放假--所以,硅谷热闻照旧!到底上周硅谷都发生了哪些科技最新动态呢?小探赶紧带你来看!无论是Wewo ...
- 0206.BFPRT在一大堆数中求其前k大或前k小的问题,简称TOP-K问题(左神算法基础班源码)
package basic_class_02;/*** * 在一大堆数中求其前k大或前k小的问题,简称TOP-K问题.* 而目前解决TOP-K问题最有效的算法即是BFPRT算法**/ public c ...
- 2006-03-05 20:41又是唱k
算起来又是很长一段时间没有写日志了,又犯懒了哈哈. 放假在家里都没看书,好好在家里养了一个月的猪(oO) 知道弟弟平时成绩退步还会去网吧,自己也很心痛又没法教,希望他自己早一天领悟到良苦用心了吧- 来 ...
- KNN(K Nearest Neighbors)分类是什么学习方法?如何或者最佳的K值?RadiusneighborsClassifer分类器又是什么?KNN进行分类详解及实践
KNN(K Nearest Neighbors)分类是什么学习方法?如何或者最佳的K值?RadiusneighborsClassifer分类器又是什么?KNN进行分类详解及实践 如何使用GridSea ...
- k近邻算法(KNN)-分类算法
k近邻算法(KNN)-分类算法 1 概念 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. k-近邻算法采用测量不同特征值之间的 ...
- 重庆人最爱汗蒸,东莞人最爱唱K?美团大数据分析
美团是中国最大的团购和线下服务公司,为用户提供衣食住行等各种生活服务,它是线下经济的一面镜子. 最近抓取了美团数据,期望通过对美团大数据的分析,发现空缺的市场,同时也发现了一些有趣的结论. 数据来源 ...
- 手机麦克风声音太大_全民K歌必备利器,得胜PH-125手机K歌麦克风让你轻松拥有好声音...
现在KTV已经不能满足我们想要随时随地K歌的需求了,很多像全民K歌这类型的K歌APP也是一片火热.大家有没有发现一个现象,在现场自己唱的还不错,但是听了录音后发现声音干巴巴的.其实,声音也可以像容貌一 ...
最新文章
- 下载安装 binary editor
- php删除session中的值,PHP中session变量的销毁
- 杀死应用进程 android,如何杀死Android应用程序启动的logcat进程?
- 链表(Linked List)之单链表
- openstack VM可以ping外部网络,但是外部网络ping不通VM
- 数字与字符串相关问题
- Elasticsearch+elasticsearch-head的安装+Kibana环境搭建+ik分词器安装
- bzoj 2115: [Wc2011] Xor(DFS+线性基)
- ValueError: operands could not be broadcast together with shapes (3000,20) (20,20)
- 基于JAVA大数据在线考试系统在线阅卷系统及大数据统计分析计算机毕业设计源码+数据库+lw文档+系统+部署
- (附源码)小程序 记账微信小程序 毕业设计 180815
- 苹果id是什么格式的_长春苹果x主板维修推荐,苹果ipad12.9死机,商业资讯
- 容量治理-扩容、限流和降级
- 大数据apache-spark问题总结
- 硬核科普 | 小谈 辣椒素和辣椒素受体 的研究,来自一线植物科研人员
- NLP最简单中文分词介绍
- QT中将文件夹内文件名称显示到tableview,对显示的文件名双击直接打开文件
- ArcGIS入门教程(矢量编辑工作流程)
- java中各种加密算法的实践应用
- 思科路由器重置密码并保存设置重置密码