Jzoj5409 Fantasy

JZOJ 题目篇 jzoj 2922 打印Hello word 众所周知,c++是许多人跨进代码世界的第一扇大门。但是你如何检验你的综合能力呢,有两个很好的网站它们分别是JZOJ与openjudge。我们先来讲OJ(JZOJ)上的题目。Tip:想要网址的我放在下面???? JZOJ:www.jzoj.cn openjudge:openjudge.cnTip:openjudge推荐加入NOI。 现在进入正题,jzoj导图第一题:2922【入门】hello world! 这一题主要讲了一个程序猿的入门 打印Hello wor 阅读详情
Y sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。
对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。
然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。

你需要告诉她,最大的幻境值之和。

对于100% 的数据,有1 <= N, K <= 10^5; 1 <= L < R <= N, |Ai|<= 10^4

此题做法比较神奇,也很好懂,但是很难搞清楚如何去构造

简单说一下,首先做出序列的前缀和,记为sum

我们发现对于一个右端点i,我们可以取为左端点的j必然在区间[i-R,i-L]中

对于每一个i,我们可以用ST表找出一个j在合法区间中使得sum[j]尽可能小

那么我们考虑,对于每一个i,我们将其建立一个五元组{val,l,r,i,t}

val表示sum[i]-sum[t]的值,l和r表示j可取的区间范围,i是右端点,t则表示在合法区间中使得sum[t]最小的值(l<=t<=r)

建立一个大根堆,按照val作为优先级

我们每次取出一个节点x后,我们将其val加入答案让后将其分裂成两个节点{val1,l,t-1,i,t1}和{val2,t+1,r,i,t2}

其中val1和t1是根据st表计算出来的,val2和t2同理

这一步操作其实就是相当于把原来的区间去掉已经统计入答案的那个点,一个区间去掉一个点分成两块而已

取出k次以后直接退出就可以得到答案

现在想想还是挺自然的

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
#define N 500010
using namespace std;
struct dx{ int v,l,r,p,m; };
int st[N][20],s[N],lg[N],n,k,l,r; long long A=0;
inline bool operator< (dx a,dx b){ return a.v<b.v; } 
int gMin(int l,int r){
	int k=lg[r-l+1];
	return s[st[l][k]]<s[st[r-(1<<k)+1][k]]?st[l][k]:st[r-(1<<k)+1][k];
}
priority_queue<dx> q;
int main(){
	freopen("fantasy.in", "r", stdin);
  	freopen("fantasy.out", "w", stdout);
	scanf("%d%d%d%d",&n,&k,&l,&r);
	for(int i=1,j=0;i<=n;++i){
		scanf("%d",s+i);
		s[i]+=s[i-1]; 
		st[i][0]=i;
		if(i==(1<<j+1)) ++j;
		lg[i]=j;
	}
	for(int i=n;~i;--i)
		for(int j=1;(i+(1<<j))<=n;++j)
			st[i][j]=s[st[i][j-1]]<s[st[i+(1<<j-1)][j-1]]?st[i][j-1]:st[i+(1<<j-1)][j-1];
	for(int L,R,t,i=l;i<=n;++i){
		L=max(0,i-r); R=i-l; t=gMin(L,R);
		q.push((dx){s[i]-s[t],L,R,i,t});
	}
	for(dx c;k--;){
		c=q.top(); q.pop(); A+=c.v;
		if(c.l<c.m){
			int m=gMin(c.l,c.m-1);
			q.push((dx){s[c.p]-s[m],c.l,c.m-1,c.p,m});
		}
		if(c.m<c.r){
			int m=gMin(c.m+1,c.r);
			q.push((dx){s[c.p]-s[m],c.m+1,c.r,c.p,m});
		}
	}
	printf("%lld\n",A);
}

FlexNet许可证错误-101,147的解决方案与配置优化 FlexNet许可证管理系统是企业级软件授权管理的核心组件,其通过服务器端配置实现精细化的访问控制。在分布式开发环境中,RESERVE指令作为最高优先级的许可证预留机制,能够确保关键用户或主机组获得稳定的工具链访问权限。当出现-101,147错误时,表明当前请求被预设的保留规则拦截,这种设计常见于需要保障高优先级项目资源的企业场景。通过解析armlmd.opt选项文件中的RESERVE指令结构,管理员可以灵活调整预留数量或扩展授权用户组,同时配合lmutil等诊断工具验证配置有效性。合理的分层预留策略(如按 阅读详情

相关推荐

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 715

Jzoj 一维数组(包括排序)部分代码(共42题)

Jzoj 数组部分题目 1117: 【入门】数组逆序 2787: 【入门】统计 1635: 【入门】输出奇数和偶数 1113: 【入门】最大数 1125: 【入门】找找谁的身高超过全家的平均身高 1118: 【入门】数组元素的查找 1135: 【入门】查找支撑数 1120: 【入门】数组元素的移动 1121: 【入门】数组元素的插入 1122: 【入门】数组元素的删除 1119: 【入门】元素插入有序数组 1138: ......

ypeijasd的专栏 6700

电芯外观及体系设计(Cell Design)-①容量平衡设计(Cell Balance Design)

全面获取并正确解读客户需求,将需求进行分解和预判,结合公司现有资源、技术,给出设计方案。一个优秀的电芯设计方案,应该是稳健的,可操作的,满足客户需求的同时,并能为公司带来较多利润。电芯设计需同时考虑周期,性能,品质,加工性,成本,及安全与稳健性。设计人员时刻要有成本控制观念,但利润则是由公司战略所决定。

FDC1303864002的博客 1351

Jzoj 循环嵌套部分代码(共27题)

1102: 【入门】字符图形1-星号矩形 #include <bits/stdc++.h> using namespace std; int n; int main() { scanf("%d", &n); for(int i=1; i<=n; ++i){ for(int j=1; j<=n; ++j){ printf("*"); } printf("\n"); } return 0; } 1103: 【入门】字符图形2-星号直角 #inc

ypeijasd的专栏 2789

ReportStudio入门教程(四十一) - 固定报表列宽

我们继续上一篇博客,让他看起来

什么是江湖? 3515

RV1126B芯片实战:如何用这款视觉处理器SoC打造你的第一个AI摄像头项目

本文详细介绍了如何利用瑞芯微RV1126B视觉处理器SoC从零构建AI摄像头项目。涵盖硬件选型、开发环境搭建、ISP配置、AI模型部署及系统集成等关键步骤,帮助开发者高效实现边缘计算方案,特别适合智能安防和工业检测应用。

dropout6artist的博客 930

【JZOJ 省选模拟】最大公约数

题目 Description Input 从文件 divisor.in 中读入数据。 只有一行,输入一个整数n 。 Output 输出到文件 divisor.out 中。 输出一行,一个整数,表示式子的结果。由于三叶只需要你的验证而不是给出答案,所以你只需要输出答案(式子的值)对 10^+7取模的值。 Sample Input Sample Input1 3 Sample Input2 985 Sample Output Sample Output1 15 Sample Output2 34988098

Brute♂force 693

科研党必备:5分钟搞定Arxiv论文批量导入NoteExpress(附PDF自动下载技巧)

本文为科研人员提供了一套高效的自动化工作流,实现从Arxiv批量检索论文、自动下载PDF到无缝导入NoteExpress的全过程。通过Python脚本和NASA ADS等工具,可大幅提升文献管理效率,特别适合需要追踪前沿动态的研究生和科研团队。

orange的博客 398

jzoj竞赛:免费的刷题竞赛(我改成所有了哦!)(附密码)

先登入。

2301_79273890的博客 923

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 902

三维重建/SLAM笔记_最佳学习路线/攻略

本文目的 学习三维重建,需要不少知识,而知识之间又存在不同的依赖关系,为了后来人能少走弯路,也为了对自己的知识框架系统总结,特记录自己的学习路线。 学习心得 关于读书,了解基础知识是一方面,产生疑问也是一方面,为以后知道学习什么留下印象; 一回生,二回熟,看不懂时,大多是因为先验知识不够,没关系,多查多想,总会搞懂的。 学习路线 1.计算机图形学基础(OpenGL基础版)(徐文鹏 清...

惊鸿一博 3291

【JZOJ5409】Fantasy

DescriptionY sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。 对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。 然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。 你需要告诉她,最大的幻境值之和。

sadnohappy 383

LLM制造业最佳实践:基于大语言模型处理最优化问题,制造业如何更优排产,提升资源利用率

随着制造业数字化转型加速,生产排产优化成为提升企业效率和竞争力的关键环节。大语言模型(LLM)凭借其强大的多模态数据处理、动态优化和智能推理能力,在复杂排产场景中展现出独特优势。谷歌、DeepSeek等机构的研究表明,LLM可通过自然语言交互和生成式决策,突破传统优化算法的局限性。本报告结合半导体行业实践案例与技术路径,系统分析LLM在排产优化中的应用潜力与挑战。

shiter编写程序的艺术 939

JZOJ 5409 Fantasy & NOI 2010 超级钢琴 题解

其实早在 2020-12-26 的比赛我们就做过 5409. Fantasy 这可是紫题啊 题目大意 给你一个序列,求长度在 \([L,R]\) 区间内的 \(k\) 个连续子序列的最大和 题解 如此多的子序列并不好处理 设 \(i\) 为一个区间的左端点,那么右端点的区间为 \([i+L-1,i+R-1]\) ,记前缀和为 \(sum_i\) 那么一个区间 \([i,j]\) 的和就是 \(s...

KonjakuLAF的博客 174

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JZOJ5409. 【NOIP2017提高A组集训10.21】Fantasy

DescriptionY sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。 对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。 然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。 你需要告诉她,最大的幻境值之和。InputN K LR A1 A2 … ANOutput输出一行一个整数

lijf2001的博客 443

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JZOJ 5409 【NOIP2017提高A组集训10.21】Fantasy

FantasyDescription给出一个长度为nn的序列AA。 对于这个序列的每一个子串,定义其价值为这个子串的和。 问选择KK个不同的子串的价值之和的最大值。 其中题目有一个特殊限制,选择出来的这些子串的长度必须在LL到RR之间。Data Constraint11<=nn,KK<=10510^5 11<=LL<RR<=NN, |AiA_i|<=10410^4Solution方法一:

XianHaoMing的博客 475

【JZOJ 5409】【NOIP2017提高A组集训10.21】Fantasy

DescriptionY sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。 对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。 然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。 你需要告诉她,最大的幻境值之和。Solution1先做一遍前缀和, 对于每个位置i,它所对应的合法右端点

742

JZOJ 5409【NOIP2017提高A组集训10.21】Fantasy(主席树版)

主席树

Luckfort 315

[2017纪中10-21]Fantasy 优先队列+ST表

题目链接:https://jzoj.net/senior/#main/show/5409 原题。。。同NOI2010超级钢琴。 这种求n个集合最大的k的值,考虑先把每个集合中的最大值扔到一个公共堆里,若某个集合最大值还未从堆中取出,那么这个集合中的次大值就没有必要进堆。从堆中不断取k次即可。假设我们很容易得到每个集合的最大值,并且删除最大值很容易得到次大值等等,这个方法就很可行了。 这题先前缀

DOFYPXY的博客 476

[Jzoj] 1293. 气象牛

题目描述 为了研究农场的气候,Betsy帮助农夫John做了N(1 <= N <= 100)次气压测量并按顺序记录了结果M_1…M_N(1 <= M_i <= 1,000,000). Betsy想找出一部分测量结果来总结整天的气压分布. 她想用K(1 <= K <= N)个数s_j (1 <= s_1 < s_2 < … < s_K &l...

AAA_Ljw 291

Jzoj 模拟算法部分题目(共7题)

Jzoj 模拟算法部分题目(共7题)

ypeijasd的专栏 730

jzoj答案推荐

http://t.csdn.cn/HKxTb http://t.csdn.cn/FbU4b http://t.csdn.cn/ocZPN 这几个文章答案都不错

m0_72781649的博客 1330

jzoj账户/网站

进去后(会有些慢)点左边的登录。用户名:1234567812345678。还有账户:打开网站,找到最上面一行的最后面:有一个登录,点。密码:jzojc++

A334356的博客 598

【JZOJ 省选模拟】字符串

题目 Description 你喜欢字符串。有人送了你一个仅含小写字母的字符串。 由于你是一名优秀的 ????????er,所以你决定对这个字符串展开研究。 定义两个字符串是相似的,当且仅当存在至多一个 ???? ,使得这两个字符串中只有第 ???? 个字母不同。 你取出了这个字符串中所有长度为m 的子串。你想知道,对于每个长度为 m 的子串,有多少个其它长度为 m 的子串与它相似。 Input 第一行两个正整数 n,m...

Brute♂force 778
上一篇: Jzoj5408 Dark
下一篇: Jzoj5410 小型耀斑
扩展的灰
博客等级 码龄12年 60粉丝 342原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值