https://codeforces.com/contest/1141/problem/F2

题意

一个大小为n的数组a[],问最多有多少个不相交的区间和相等

题解

  • 离散化用值来做,贪心选择较前的区间

代码

#include<bits/stdc++.h>
#define M 5000005
#define ll long long
#define pb push_back
using namespace std;
struct N{int l,r;N(int l=0,int r=0):l(l),r(r){}};
int n,i,j,p,ans,cnt,u,r,sz=0;
ll a[2005],b[M];
vector<N>g[M]; int main(){
cin>>n;
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);a[i]+=a[i-1];
for(j=i;j>=1;j--){
b[sz++]=a[i]-a[j-1];
}
}
sort(b,b+sz);sz=unique(b,b+sz)-b;
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
p=lower_bound(b,b+sz,a[i]-a[j-1])-b;
g[p].pb({j,i});
}
}
ans=1;
for(i=0;i<sz;i++){
r=g[i][0].r;cnt=1;
for(j=1;j<g[i].size();j++){
if(g[i][j].l>r){
cnt++;r=g[i][j].r;
}
}
if(cnt>=ans){
ans=cnt;u=i;
}
}
printf("%d\n%d %d\n",ans,g[u][0].l,g[u][0].r);
r=g[u][0].r;
for(i=1;i<g[u].size();i++){
if(g[u][i].l>r){
printf("%d %d\n",g[u][i].l,g[u][i].r);
r=g[u][i].r;
}
}
}

Codeforces Round #547 (Div. 3) F 贪心 + 离散化的更多相关文章

  1. Codeforces Round #547 (Div. 3) G 贪心

    https://codeforces.com/contest/1141/problem/G 题意 在一棵有n个点的树上给边染色,连在同一个点上的边颜色不能相同,除非舍弃掉这个点,问最少需要多少种颜色来 ...

  2. Codeforces Round #547 (Div. 3) 题解

    Codeforces Round #547 (Div. 3) 题目链接:https://codeforces.com/contest/1141 A,B咕咕了... C. Polycarp Restor ...

  3. Codeforces Round #485 (Div. 2) F. AND Graph

    Codeforces Round #485 (Div. 2) F. AND Graph 题目连接: http://codeforces.com/contest/987/problem/F Descri ...

  4. Codeforces Round #486 (Div. 3) F. Rain and Umbrellas

    Codeforces Round #486 (Div. 3) F. Rain and Umbrellas 题目连接: http://codeforces.com/group/T0ITBvoeEx/co ...

  5. Codeforces Round #501 (Div. 3) F. Bracket Substring

    题目链接 Codeforces Round #501 (Div. 3) F. Bracket Substring 题解 官方题解 http://codeforces.com/blog/entry/60 ...

  6. Codeforces Round #499 (Div. 1) F. Tree

    Codeforces Round #499 (Div. 1) F. Tree 题目链接 \(\rm CodeForces\):https://codeforces.com/contest/1010/p ...

  7. Codeforces Round #532 (Div. 2) F 线性基(新坑) + 贪心 + 离线处理

    https://codeforces.com/contest/1100/problem/F 题意 一个有n个数组c[],q次询问,每次询问一个区间的子集最大异或和 题解 单问区间子集最大异或和,线性基 ...

  8. Codeforces Round #552 (Div. 3) F. Shovels Shop (前缀和预处理+贪心+dp)

    题目:http://codeforces.com/contest/1154/problem/F 题意:给你n个商品,然后还有m个特价活动,你买满x件就把你当前的x件中最便宜的y件价格免费,问你买k件花 ...

  9. Codeforces Round #375 (Div. 2) F. st-Spanning Tree 生成树

    F. st-Spanning Tree 题目连接: http://codeforces.com/contest/723/problem/F Description You are given an u ...

随机推荐

  1. How to identify safari in Mac?

    How to identify safari in Mac?in userAgent, find keywords below1) and: Macintosh, Mac OS X, AppleWeb ...

  2. k8s学习笔记之三:k8s快速入门

    一.前言 kubectl是apiserver的客户端工具,工作在命令行下,能够连接apiserver上实现各种增删改查等各种操作 kubectl官方使用文档:https://kubernetes.io ...

  3. springboot发送邮件

    1.在发送端邮箱平台开通SMTP服务 1)以163邮箱为例: step 1: step 2: 2.编写代码: 1)添加发送邮箱maven依赖 <dependency> <groupI ...

  4. 3. tomcat 内存设置

    -Xms512m -Xmx1024m -XX:PermSize=512M

  5. Jenkins部署报weblogic.deploy.api.tools.deployer.DeployerException: Java heap space

    Jenkins部署报weblogic.deploy.api.tools.deployer.DeployerException: Java heap space异常 解决办法: 在MAVEN_OPTS中 ...

  6. PHPsocket、CURL、File_get_contents采集

    1.socket采集.采用最底层的,它只是建立一个长连接,然后我们自己构造http协议字符串去发送请求.例如想获取这个页面内容(http://tv.youku.com/?spm=a2hww.20023 ...

  7. spring jdbc学习1

    1.queryForObject - 其中的 RowMapper 指定如何去映射结果集的行, 常用的实现类为 BeanPropertyRowMapper - 使用 SQL 中列的别名完成列名和类的属性 ...

  8. python中的异常处理常用方法

    异常处理 什么是异常? 异常就是与正常情况不同,程序在执行过程中出现错误,导致无法执行完毕.异常其实就是代码执行过程中出错. 常见的一些异常 AttributeError 试图访问一个对象没有的属性, ...

  9. 1.MySQL基础

    1.创建一个数据库: create database db_test; 2.创建一个表: MySQL [mysql]> use db_test; Database changed MySQL [ ...

  10. K8s之Etcd

    Etcd是一个开源的.高可用的.分布式的键值对数据存储系统,提供共享配置.服务的注册和发现.etcd与zookeeper相比算是轻量级系统,两者的一致性协议也一样,etcd的raft比zookeepe ...