首页 > 其他分享 > Codeforces Round #547 (Div. 3) F2. Same Sum Blocks (贪心——最多不重叠区间数量)

Codeforces Round #547 (Div. 3) F2. Same Sum Blocks (贪心——最多不重叠区间数量)

时间:2023-02-11 17:35:11浏览次数:65  
标签:F2 const int res Sum ans 区间 Blocks

题目

题意

  • 忽略;
  • 给出一个数组,求和相等的,不重叠子串的最大数量,并输出
  • (题目有点绕)

思路

  • 先求出数组前缀和,然后找出所有数字和的区间数组
  • 对不同的和进行贪心操作————找最多不重叠区间数量
  • 一个经典思路,按照右边界排序(左端点升序),遍历直到当前区间左边界大于上一次区间的右边界,更新左边界,然后计数

代码


//常数定义
const double eps = 1e-6;
const double PI = acos(-1.0);
const int INF = 0x3f3f3f3f;
const int N = 1510;

int a[N];
void solve() 
{
    int n;cin >> n;
    for(int i = 1;i <= n;i ++)
    {
        cin >> a[i];
        a[i] += a[i-1];
    }

    map<int,vector<PII>> seg;
    for(int i = 1;i <= n;i ++)
    {
        for(int j = 1;j <= i;j ++)
        {
            seg[a[i] - a[j-1]].push_back({j,i});
        }
    }

    vector<PII> ans;
    for(auto &[id,edge]:seg)
    {
        vector<PII> res;
        int r = -INF;
        for(auto x:edge)
        {
            if(x.fi > r)r = x.se,res.push_back(x);
        }
        if(ans.size() < res.size())ans = res;
    }

    cout << ans.size() << endl;
    for(auto [l,r]:ans)cout << l << " " << r << endl;
}


标签:F2,const,int,res,Sum,ans,区间,Blocks
From: https://www.cnblogs.com/cfddfc/p/17112170.html

相关文章

  • 修复华硕笔记本fn+f2在ubuntu下wifi不能够正常使用和WiFi Disabled (Hard-blocked) (
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文发布于2014-12-2211:49:16,现用MarkDo......
  • B. Sum of Two Numbers
    B.SumofTwoNumbersThesumofdigitsofanon-negativeinteger$a$istheresultofsummingupitsdigitstogetherwhenwritteninthedecimalsystem.Fore......
  • B. Sum of Two Numbers
    B.SumofTwoNumbershttps://codeforces.com/problemset/problem/1788/B 思路计算原数的所有位置上的digit和得到digit和的一半 对于原数从左到右切分,前半部分d......
  • E. Sum Over Zero
    E.SumOverZeroYouaregivenanarray$a_1,a_2,\ldots,a_n$of$n$integers.Consider$S$asasetofsegmentssatisfyingthefollowingconditions.Eache......
  • 合理安排kafka的broker、partition、consumer数量
    broker的数量最好大于等于partition数量一个partition最好对应一个硬盘,这样能最大限度发挥顺序写的优势。一个broker如果对应多个partition,需要随机分发,顺序IO会退化成随......
  • Code::Blocks 2023.01 全中文汉化-优化版
    Code::Blocks是一款开放源码、功能全面的跨平台集成开发环境(IDE),通过集成相应的编译器,可以支持使用广泛的C和C++程序开发。而且通过集成各种插件,可以实现各种扩展功能。......
  • [dp 记录] CF1152F2 Sonya and Informatics
    trick:从值域考虑。好题。但是感觉和CF1151F差不多难。两题都是*3000但是一紫一黑。题意:对长度为\(k\),值域\(n\)的序列计数:\(a_i\leqa_{i-1}+m\)\(\fora......
  • pytest---多重断言(pytest-assume)
    前言在编写自动化测试用例的时候,可能一条用例存在这多条断言,那么在自动化中如何编写多条断言且断言失败后还能继续往下执行?这里引入新的插件pytest-assumepytest-assume......
  • 124. Binary Tree Maximum Path Sum[Hard]
    124.BinaryTreeMaximumPathSumApathinabinarytreeisasequenceofnodeswhereeachpairofadjacentnodesinthesequencehasanedgeconnectingthem.......
  • Codeforces Round #716 (Div. 2), B. AND 0, Sum Big, 快速幂结论题
    problemB.AND0,SumBigtimelimitpertest2secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputBabyBadawy’sfirstwordswe......