「2019冬令营提高组」全连

传送门

显然的 $dp$

设 $f[i]$ 表示点击第 $i$ 个音符时的最大价值,$t[i]$ 表示音符 $i$ 的准备时间

那么可以枚举 $1$ 到 $i-t[i]$ 的所有音符,如果  $j$ ,如果 $j+t[j]$ 小于等于 $i$ ,那么 $f[i]=max(f[i],f[j]+t[i]*val[i])$

考虑优化转移

显然如果 $i$ 在时间 $k$ 时可以转移,那么后面所有的时间也都能转移

考虑用树状数组维护前缀最大值,用 $vector$ 维护时间 $k$ 时恰好可以转移的 $f$

那么每次到一个位置就把可以转移的 $f$ 插到树状数组,然后查询最大值转移

复杂度 $O(nlog_n)$,注意 $long\ long$

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
using namespace std;
typedef long long ll;
inline int read()
{int x=0,f=1; char ch=getchar();while(ch<'0'||ch>'9') { if(ch=='-') f=-1; ch=getchar(); }while(ch>='0'&&ch<='9') { x=(x<<1)+(x<<3)+(ch^48); ch=getchar(); }return x*f;
}
const int N=1e6+7;
int n,t[N],val[N];
ll T[N],f[N],ans;
inline void ins(int x,ll y) { while(x<=n) T[x]=max(T[x],y),x+=(x&-x); }
inline ll query(int x) { ll res=0; while(x) res=max(res,T[x]),x-=(x&-x); return res; }
vector <int> v[N];
int main()
{freopen("fc.in","r",stdin);freopen("fc.out","w",stdout);n=read();for(int i=1;i<=n;i++) t[i]=read();for(int i=1;i<=n;i++) val[i]=read();for(int i=1;i<=n;i++){int len=v[i].size();for(int j=0;j<len;j++) ins(v[i][j], f[v[i][j]] );f[i]=1ll*val[i]*t[i]+ (i>t[i] ? query(i-t[i]) : 0);if(i+t[i]<=n) v[i+t[i]].push_back(i);ans=max(ans,f[i]);}printf("%lld",ans);return 0;
}

 

转载于:https://www.cnblogs.com/LLTYYC/p/10490457.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker常用命令、超实用、讲解清晰明了(rm、stop、start、kill、logs、diff、top、cp、restart ...)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 查看docker信息&#xff08;version、info&#xff09; # 查看docker版本 $docker version # 显示docker系统的信息 $docker i…

推荐给开发人员的实用命令行工具

摘要&#xff1a;优秀的工具对于定位问题出在何处有着无可估量的价值&#xff0c;而且能在一开始就帮助我们阻止问题的出现&#xff0c;总的来说能使我们的工作更有效率。本文介绍了6个非常强大且灵活的工具&#xff0c;熟练使用这些工具能使你的生活变得更轻松一些。 作为一名…

雷军:启动手机+AIoT双引擎战略 5G春天到来前打持久战

雷帝网 乐天 1月11日报道 小米CEO雷军今日在小米年会上宣布&#xff0c;2019年&#xff0c;小米将正式启动“手机AIoT”双引擎战略&#xff0c;这将是小米未来五年的核心战略。未来5年&#xff0c;小米将在AIoT领域持续投入超过100亿元。从2019年起&#xff0c;AIoT&#xff0c…

Jenkins自定义主题

x下载自定义样式 http://afonsof.com/jenkins-material-theme/ 打开连接 最后点击&#xff1a;DOWNLOAD TOUR THEME! 得到样式文件&#xff1a;jenkins-material-theme.css 上传样式文件到jenkins 将jenkins-material-theme.css 上传到&#xff1a; /var/jenkins_home/userCont…

SSH (Secure Shell)详解

Secure Shell&#xff08;SSH&#xff09;是一种加密 网络协议&#xff0c;用于在不安全的网络上安全地运行网络服务。 SSH通过客户端 - 服务器体系结构中的不安全网络提供安全通道&#xff0c;将SSH客户端应用程序与SSH服务器相连接。 常见的应用程序包括远程命令行登录和远程…

股票配对收益

import pandas as pd import numpy as npimport matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [SimHei] # 字体设置 import matplotlib matplotlib.rcParams[axes.unicode_minus]False # 负号显示问题from arch.unitroot import ADF …

YUV420、YUV422、RGB24转换

//平面YUV422转平面RGB24 static void YUV422p_to_RGB24(unsigned char *yuv422[3], unsigned char *rgb24, int width, int height) { int R,G,B,Y,U,V; int x,y; int nWidth width>>1; //色度信号宽度 for (y0;y<height;y) { for (x0;x<width;x) { …

最长非下降子序列(O(nlogn))(offer收割)

题目 如题 思路 核心思想是&#xff0c;维护一个数组ends&#xff0c;它记录了长度为k的子序列的末尾元素的最小值。听起来很抽象&#xff0c;我们不妨手动演示一遍整个过程。 假设数组a{2,9,4,27,29,15,7}&#xff0c;令length表示当前找到的最长非下降子序列的长度。初始时le…

[Python]小甲鱼Python视频第026课(字典:当索引不好用时2)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Fri Mar 8 10:32:20 2019author: Administrator """"""测试题&#xff1a;0. Python的字典是否支持一键&#xff08;Key&#xff09;多值&#xff08;Value&#xff09;&#xff1f;不支…

2021-08-12 画蜡烛线

画蜡烛线 pip install https://github.com/matplotlib/mpl_finance/archive/master.zip from mpl_finance import candlestick_ochl import matplotlib.pyplot as plt from matplotlib.pylab import date2num# 先画日K线 fig, axes plt.subplots(nrows1, ncols1, figsize(20, …

替换字符串列表中字符串

//替换字符串列表中字符串 procedure StringsReplace(var S : TStrings; OldPattern, NewPattern: string; Flags: TReplaceFlags);var i : integer; tmpstr : string;begin for i : 0 to S.Count -1 do begin tmpstr : S[i]; s[i] : StringReplace(tmpstr, Ol…

TCP/IP协议族 详解(TCP/IP四层模型、OSI七层模型)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 TCP/IP协议族&#xff08;TCP/IP Protocol Suite&#xff0c;或TCP/IP Protocols&#xff09;&#xff0c;简称TCP/IP。由于在网络通讯协…

RGB 24和YUY2相互转换

YUY2经常用于电视制式以及许多摄像头的输出格式.而我们在处理时经常需要将其转化为RGB进行处理,这里简单介绍下YUY2(YUV)与RGB之间相互转化的关系: http://msdn2.microsoft.com/en-us/library/ms893078.aspx YUY2(YUV) To RGB: C Y - 16 D U - 128 E V - 128 R clip((…

通达信获取数据

#python第三方库pytdx获取 from pytdx.hq import TdxHq_API api TdxHq_API() # 数据获取接口一般返回list结构&#xff0c;如果需要转化为pandas Dataframe接口&#xff0c;可以使用 api.to_df 进行转化 with api.connect(119.147.212.81, 7709): # 返回普通list data …

ICMP (互联网控制消息协议 )是什么

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 互联网控制消息协议&#xff08;英语&#xff1a;Internet Control Message Protocol&#xff0c;缩写&#xff1a;ICMP&#xff09;是互…

股票数据相关性分析

导入相关包 import pandas as pd import numpy as np import matplotlib.pyplot as plt from matplotlib.collections import LineCollection import akshare as ak from sklearn import cluster, covariance, manifold %matplotlib inline #Jupyter Notebook显示图形专用 plt…

分享一个辅助分析内存泄漏的脚本

最近给系统做了一点优化&#xff0c;前几天去查看系统监控&#xff0c;想看看上线前后cpu使用率曲线变化情况。查看的时候意外发现上线前后内存占用相差不少&#xff0c;20%以上。 本来我没怎么在意这个问题&#xff0c;因为我们系统会在运行过程中缓存部分数据内容。但客户觉得…

windows Virtualbox下配置Ubuntu,且用ssh连接

1、软件介绍 1&#xff09;virtualbox 5.2.22 2&#xff09;Ubuntu 18.04 3&#xff09;git bash 2、virtualbox设置 安装完Ubuntu后点击该镜像的设置&#xff0c;依次点击“网络”——“端口转发” 将主机端口设置为一个闲置端口&#xff0c;子系统端口也就是Ubuntu端口设置…

专访刘伟:软件开发人员的内功修炼之道

摘要&#xff1a;数学修养对软件开发之路起着什么作用&#xff1f;码农如何修炼自己的内功并成长为优秀的软件开发员&#xff1f;带着相关思考&#xff0c;社区之星第10期采访了中南大学副教授——刘伟。他对数学修养、设计模式、软件架构和重构方面的独特见解&#xff0c;相信…

多线程数据下载(akshare)

import akshare as ak import pandas as pd from multiprocessing.dummy import Pool as ThreadPool import datetime import timedef get_hs300_stock_codes():获取沪深300股票代码列表:return:hs300ak.index_stock_cons_sina("000300")codeshs300[code]codescodes.…