题目传送门

思路

简单题。

不妨先预处理出每一个区间的 \(\sum\),然后离散化 \(\sum\),对于每个 \(\sum\) 开一个 \(\mathcal vector\) 记录所有区间的左右端点。

然后枚举每个 \(\sum\),求最多的区间,这是一个简单的贪心问题,可以用 \(\mathcal set\) 轻松完成。

代码

#include<bits/stdc++.h>
using namespace std;
int const N=3e6+10;
int a[N],lsh[N];
vector< pair<int,int> >qans,anss;
struct node{int l,r,val;}q[N];
vector< pair<int,int> >ins[N];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int n;cin>>n;int k=0;
for (int i=1;i<=n;++i) cin>>a[i];
for (int i=1;i<=n;++i){
int res=0;
for (int j=i;j<=n;++j){
res+=a[j];lsh[++k]=res;
q[k]={i,j,res};
}
}
sort(lsh+1,lsh+k+1);int l=unique(lsh+1,lsh+k+1)-lsh-1;
for (int i=1;i<=k;++i) ins[lower_bound(lsh+1,lsh+l+1,q[i].val)-lsh].push_back({q[i].l,q[i].r});
for (int i=1;i<=l;++i) sort(ins[i].begin(),ins[i].end());
for (int i=1;i<=l;++i){
int len=(int)ins[i].size(),l=0;
set< pair<int,int> >s;
for (int j=0;j<len;++j) s.insert({ins[i][j].second,ins[i][j].first});
int res=0;qans.clear();
while (s.size()){
while (s.size() && (*s.begin()).second<=l) s.erase(s.begin());
if (!s.size()) break;
l=(*s.begin()).first;
qans.push_back({(*s.begin()).second,(*s.begin()).first});
s.erase(s.begin());
}
if (qans.size()>anss.size()) anss=qans;
}
cout<<(int)anss.size()<<'\n';
for (auto i:anss) cout<<i.first<<' '<<i.second<<'\n';
return 0;
}

CF1141F2 Same Sum Blocks (Hard)的更多相关文章

  1. F2. Same Sum Blocks (Hard) 解析(思維、前綴和、貪心)

    Codeforce 1141 F2. Same Sum Blocks (Hard) 解析(思維.前綴和.貪心) 今天我們來看看CF1141F2(Hard) 題目連結 題目 給你一個數列\(a\),要你 ...

  2. 【CF1141F2】Same Sum Blocks

    题解:发现可以通过枚举区间将区间和相同的元组记录在一个表中,对于答案来说,在同一个表中的元组的选择才会对答案产生贡献.发现每一个表中都是一个个区间,问题转化成了对于每一个表来说,选择若干个不相交的区间 ...

  3. 【CF1141F1】Same Sum Blocks

    题目大意:给定一个 N 个值组成的序列,求序列中区间和相同的不相交区间段数量的最大值. 题解:设 \(dp[i][j]\) 表示到区间 [i,j] 时,与区间 [i,j] 的区间和相同的不相交区间数量 ...

  4. CF1141F Same Sum Blocks(easy/hard)

    传送门easy 传送门hard 切水题的感觉真好 看到数据范围这么小,所以暴力枚举所有的可能,然后用map+vector存下每种值的区间,然后贪心去选 代码: #include<cstdio&g ...

  5. Codeforces1141F_Same Sum Blocks

    题意 给定一个序列,求最多的不相交区间满足区间和相同. 分析 从暴力的角度想,是枚举区间再求和,反过来想,直接记录每个和对应是那些区间,然后排个序求最大不相交即可. 代码 #include <b ...

  6. Codeforces Round #547 (Div. 3) F1/2. Same Sum Blocks (Easy/Hard) (贪心,模拟)

    题意:有一长度为\(n\)的数组,求最多的区间和相同的不相交的区间的个数. 题解:我们可以先求一个前缀和,然后第一层循环遍历区间的右端点,第二层循环枚举左端点,用前缀和来\(O(1)\)求出区间和,\ ...

  7. oracle普通表转分区表(在线重定义方式)

    1.1.TAB_TAOBAO_BILL 1.1.1检查下这张表是否可以在线重定义,无报错表示可以,报错会给出错误信息: exec dbms_redefinition.can_redef_table(' ...

  8. SYSTEM表空间AUD$使用空间过大问题处理

    问题现象:SYSTEM表空间使用率超99%,前期设计时SYSTEM表空间是10G固定大小不允许自动扩展. 1.查询SYSTEM表空间的使用率 set linesize 200 col TABLESPA ...

  9. 相克军_Oracle体系_随堂笔记005-Database buffer cache

    本章主要阐述SGA中的Database buffer cache. Buffer cache { 1.pin (读写瞬间的状态) 2.clean 3.dirty 4.unused } --Databa ...

  10. ORACLE计算表引占用空间大小

    在ORACLE数据库中,如何计算一个表所占用的存储空间呢?我们可以通过系统视图DBA_SEGMENTS.USER_SEGMETNS.DBA_TABLES来查看一个表所占空间的大小,如下所示:   SE ...

随机推荐

  1. day33 过滤器filter & 监听器listener & 利用反射创建BaseServlet实现调用自定义业务方法

    Filter过滤器 Fileter可以实现: 1)客户端的请求访问servlet之前拦截这些请求,对用户请求进行预处理 2)对HttpServletResponse进行后处理: 注意 多个Filter ...

  2. <五>function的实现原理

    类模版std::function是一种通用.多态的函数封装.std::function的实例可以对任何可以调用的目标实体进行存储.复制.和调用操作,这些目标实体包括普通函数.Lambda表达式.函数指 ...

  3. django.db.migrations.exceptions.NodeNotFoundError: Migration apitest.0001_initial dependencies reference nonexistent parent node ('product', '0001_initial')

    执行python manage.py makemigrations时出现以下错误 D:\autotestplat>python manage.py makemigrations Tracebac ...

  4. 【机器学习】李宏毅——Anomaly Detection(异常检测)

    异常检测概述 首先要明确一下什么是异常检测任务.对于异常检测任务来说,我们希望能够通过现有的样本来训练一个架构,它能够根据输入与现有样本之间是否足够相似,来告诉我们这个输入是否是异常的,例如下图: 那 ...

  5. Salesforce LWC学习(四十) datatable的dynamic action的小坑浅谈

    本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentatio ...

  6. 9、手写一个starter

    一.starte详解: 1.starter场景启动器: SpringBoot-starter是一个集成接合器,主要完成两件事: (1).引入模块所需的相关jar包 (2).自动配置各自模块所需的属性 ...

  7. Raft一致性共识算法论文学习

    论文地址:https://pdos.csail.mit.edu/6.824/papers/raft-extended.pdf 看完raft共识算法,脑袋非常懵,所以写一篇学习笔记,记录一下. raft ...

  8. js鼠标轨迹特效

    今天无意中访问到了开源社区 (apiopen.top)的主界面,发现鼠标跟随的特效不错(残留轨迹),弄下来玩玩 上代码 整合后只需要两部分,导入JS依赖后,在html 添加 id 为 mouseCan ...

  9. DVWA靶场——靶场搭建

    DVWA靶场搭建 一.phpstudy环境准备: 第一步:下载PHPstudy: 找到PHPstudy官网,下载windows版小皮面板,然后安装.官网下载地址:https://www.xp.cn/ ...

  10. [cocos2d-x]飞机大战 遇到的bug和总结(二)

    第一点 声音文件最好不要使用mp3格式,因为我在同时使用背景音乐和playeffect()的时候,出现了bug,两者的音效不能同时出现(应该是格式问题),并且声音在windows上运行的时候加载非常慢 ...