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. Python笔记:深浅拷贝

    1.赋值操作两者是同一数据,其内存地址一样.适用于list.dict.set数据类型. 2.copy是浅拷贝,只能拷贝嵌套数据的第一层数据,嵌套的数据与赋值操作相同,其内存地址一样,当一个被更改,其他 ...

  2. Mybatis-spring 动态代理

    1.UserMapper.java package com.cn.mapper; import java.util.List; import com.cn.pojo.User; public inte ...

  3. leetcode141

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  4. error: ‘kEmptyString’ is not a member of ‘google::protobuf::internal’

    最近安装caffe,突然报这个错: .build_release/src/caffe/proto/caffe.pb.h: In member function ‘void caffe::ImageDa ...

  5. i386 x86_64 armv7 arm64

    arm7: Used in the oldest iOS 7-supporting devices arm7s: As used in iPhone 5 and 5C arm64: For the 6 ...

  6. byobu 禁止窗口名称随目录变化

    It looks like the config set-window-option -g automatic-rename off doesn't work. When I added the fo ...

  7. mysql实用函数

    1.  group_concat(); 可以将选择的字段列数据,分组以逗号分隔成一串.实用方便.select id,group_concat(distinct name) from ttt group ...

  8. [Ting's笔记Day6]活用套件carrierwave gem:(1)在Rails实现图片上传功能

    carrierwave是一款经典的图片上传套件,本篇的目标是先在本地端(development)的rails项目试成功gem. (预计中集的进度会练习怎么利用Amazone S3架设图片上传Host, ...

  9. cmake find_package 中,include_directories,target_link_libraries 的值怎么知道?

    拿Sophus库为例: find_package(Sophus REQUIRED) include_directories(${Sophus_INCLUDE_DIRS}) target_link_li ...

  10. SSM商城项目(七)

    1.   学习计划 1.Solr服务搭建 2.Solrj使用测试 3.把数据库中的数据导入索引库 4.搜索功能的实现 2.   Solr服务搭建 2.1. Solr的环境 Solr是java开发. 需 ...