首页 > 其他分享 >2023牛客多校第九场 D Non-Puzzle: Error Permutation

2023牛客多校第九场 D Non-Puzzle: Error Permutation

时间:2023-08-14 20:35:28浏览次数:43  
标签:Non int Puzzle cin ++ vec Error 区间 sum

题意

给定一个长度为n的序列,计算有多少个子区间满足子区间第K小的数不在子区间第K位。

 

找出所有不满足条件的区间。枚举所有的ai和左端点al,找出满足ai是区间[l,r]中第r-l+1小的右端点r,则右端点r一定是一段区间。

例如      3 4 2 1 6 5

                 l  i     

则r=[3,6]

当l向左移动时,如果al<ai,则r不变,否则r就向右移动。

使用双指针维护找到所有不满足条件的区间。将不合法区间合并,最终答案就是剩余的区间个数。

#include <bits/stdc++.h>
#define IO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
using namespace std;

int sum[5001][5001];
signed main()
{
    IO;
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin >> n;
        vector<int> vec(n + 1);
        for (int i = 0; i <= n + 1;i++)
            for (int j = 0; j <= n + 1;j++)
                sum[i][j] = 0;
        for (int i = 1; i <= n;i++)
            cin >> vec[i];
        for (int i = 1; i <= n;i++)
        {
            int l = i, r = i;
            while(r<n&&vec[r+1]>vec[i])
                r++;
            sum[i][l]++, sum[i][r + 1]--;
            for (int j = i - 1; j >= 1;j--)
            {
                if(vec[j]>vec[i])
                {
                    l = r + 1;
                    r = l;
                    while(r<n&&vec[r+1]>vec[i])
                        r++;
                }
                if(l<=n)
                    sum[j][l]++, sum[j][r + 1]--;
            }
        }
        int ans = 0;
        for (int i = 1; i <= n;i++)
        {
            int f = 0;
            sum[i][i - 1] = 0;
            for (int j = i; j <= n;j++)
            {
                f += sum[i][j];
                if(!f)
                    ans++;
            }
        }
        cout << ans << endl;
    }
    return 0;
}

 

 

 

标签:Non,int,Puzzle,cin,++,vec,Error,区间,sum
From: https://www.cnblogs.com/yosuganosora/p/17629651.html

相关文章

  • critical error detected c0000374
    记录一个堆栈被破坏的问题debug版本正常,release版本概率出现崩溃,release模式调试提示错误:criticalerrordetectedc0000374问题不好跟,崩溃地方实际是没问题的,出问题的是在其他堆栈被破坏的地方可能是:strcpy拷贝字符串长度过长导致内存越界,其他一些操作导致内存被破坏了写......
  • 23牛客多校9 I Non-Puzzle: Segment Pair
    也许更好的阅读体验\(\mathcal{Description}\)给\(n\)对区间,要求每对区间恰好选一个使得选出来的\(n\)个区间有交集,问有多少方案数\(1\len,l_i,r_i\le5×10^5\)\(\mathcal{Solution}\)注意到区间的值域也是\(5×10^5\),考虑从值域入手,也就是枚举每个点看有多少种方案使最后......
  • DP vs Non DP
    我们对知识的探究来源于探寻规律,而许多规律性的问题可以分出阶段进行递推解决,这样就形成了DP。DP非常有用,但它并不能取代找规律的过程。即使是多阶段决策问题,发现一些规律可能比直接使用DP更加简单。例子:你有\(n\)个字母A,\(m\)个字母B,你可以将这些字母组成成为一个字......
  • EBS: Error:Txn Failed WIP_WORK_ORDER_LOCKED (JOBNAME=XXXXX)
    Error:TxnFailedWIP_WORK_ORDER_LOCKED(JOBNAME=XXXXX)whileWIPCompletionfromOracleWMS. (DocID2624324.1)LastupdatedonMAY15,2023APPLIESTO:OracleWorkinProcess-Version12.2.7andlaterInformationinthisdocumentappliestoanyplatform.......
  • 【转】Rust anyhow & thiserror
    Rust 中使用 std::result::Result 表示可能出错的操作,成功的时候是 Ok(T),而出错的时候则是 Err(E):pubenumResult<T,E>{Ok(T),Err(E),}通常情况下,E 是实现 std::error::Error 的错误类型:pubtraitError:Debug+Display{fnsource(&self)->......
  • 解决Mac 上码云gitee或者github出现The requested URL returned error: 403
    出现场景要把某个项目push到码云上,已经设置了仓库地址,在最后一步直接报错。adodeMacBook-Pro:yimabaoado$gitpush--set-upstreamoriginmasterremote:[session-774b45b9]Accessdeniedfatal:unabletoaccess'https://gitee.com/mzmilk/yimabao.git/':Therequested......
  • mysql在开启group_replication后,报错ERROR 3092,This member has more executed transa
    问题描述:mysql在开启group_replication后,报错ERROR3092,Thismemberhasmoreexecutedtransactionsthanthosepresentinthegroup,如下所示:数据库:MySQL8.0.27系统:rhel7.31、异常重现Slave01[(none)]>startgroup_replication;ERROR3092(HY000):Theserverisnotc......
  • pyinstaller "importlib.metadata.PackageNotFoundError"
    使用pyinstaller打包后的python程序,执行的时候出现"importlib.metadata.PackageNotFoundError"异常Traceback(mostrecentcalllast):File"main.py",line5,in<module>File"PyInstaller/loader/pyimod02_importers.py",line352,ine......
  • java.lang.NoSuchMethodError: com.baomidou.mybatisplus.core.toolkit.StringUtils.i
    1、原因这是由于两个版本不一致导致的;<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version&......
  • Extended Kalman Filter vs. Error State Kalman Filter for Aircraft Attitude Estim
    EKF与ESKF的对比“Engineerscansolveexactproblemsusingnumericalapproximations,ortheycansolveapproximateproblemsexactly"-FredDaum.对出现在实际问题中的非线性的运动学(dynamic)模型以及/或非线性的观测方程进行线性化的操作,然后基于这个线性化的方程计算......