首页 > 其他分享 >E. Long Inversions

E. Long Inversions

时间:2024-04-09 16:44:20浏览次数:17  
标签:int 区间 cin Long -- Inversions

原题链接

题解

巧妙模拟题
这种题目要从性质下手
1.把翻转的区间实质化,我们可以发现序列中值为 1 的地方覆盖了偶数个区间, 0 的地方覆盖率奇数个区间,换句话说,如果 1 的地方覆盖区间个数为奇数,那么我们要新建立一个以它为起点的区间

怎么模拟呢?
我们维护一个到当前点的距离小于等于k的区间起点,然后统计个数

code

#include<bits/stdc++.h>
using namespace std;
int n;
char s[5005];
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n;
        cin>>(s+1);
        for(int k=n;k>=1;k--)
        {
            int layer=0;
            queue<int> q;
            int flag=1;
            for(int i=1;i<=n;i++)
            {
                if(s[i]-48==layer%2)
                {
                    layer++;
                    q.push(i);
                    if(n-i+1<k)
                    {
                        flag=0;
                        break;
                    }
                }
                if(q.size()&&i-q.front()+1==k)
                {
                    q.pop();
                    layer--;
                }
            }
            if(flag)
            {
                cout<<k<<endl;
                break;
            }
        }
    }
    return 0;
}

标签:int,区间,cin,Long,--,Inversions
From: https://www.cnblogs.com/pure4knowledge/p/18124300

相关文章

  • Longan Pi 3H简约外壳分享
    LonganPi3H简约外壳分享因为购买了LonganPi3H,它用的是H618,我记得香橙派zero2w也是这个芯片,不过我很喜欢sipeed的这个风格,特别好看,而且该有的都有,不说废话了,直接上图片和文件链接:https://pan.baidu.com/s/1d1pQBoDtDptA0vc__GnHZg提取码:deb2......
  • 题解:CF1918B Minimize Inversions
    CF1918BMinimizeInversions思路暴力一个一个的算,复杂度巨大。数学规律让逆序最少,也就是让升序更多。我们可以通过多组数据实验,最终我们会发现,将数列\(A\)减少一个逆序对,让数列\(B\)随着\(A\)变化,最多会只会增加一个逆序对。而让\(A\)相邻两个数保持升序,\(B\)相邻......
  • LeetCode in Python 300. Longest Increasing Subsequence (最长递增子序列)
    求最长递增子序列是深度优先搜索(DFS)的一种应用,有两种比较好的方法可以解决。第一种是动态规划法,时间复杂度为O(n*n),即设置边界条件和更新迭代公式求解最优解。第二种使用二分查找将时间复杂度降为O(nlogn)。本文给出两种方法的实现代码及说明。示例:图1最长递增子序列输入......
  • Java中的整数类型(int、long)的最大、最小值
    一、intint类型是在计算机中占4B,所以是32bit位。并且是有符号的,最高位为符号位,所以最大值的二进制表示为01111111111111111111111111111111,转换成十进制为2^31-1,即2147483647。最小值为10000000000000000000000000000000,转化成十进制为-2^31。二、long(longlong)lon......
  • MybatisPlus存储非List<Long>类型
    错误信息:java.lang.RuntimeException:FailedtodeserializeJSONtoList<Long> 使用mybatisplus的时候,对应数据库的实体类有个字段如下:@TableField(typeHandler=JacksonTypeHandler.class)privateList<String>authImages;需要存储图片列表的地址,["aaa.png","bbb.png&q......
  • 题解 P9981 [USACO23DEC] Minimum Longest Trip G
    【洛谷专栏】题意\(N\)个点\(M\)条边的有向无环图,对于每一个点\(i\)你需要求出一条从\(i\)出发的最长路径且路径上边权组成的序列字典序最小。求每一条路径的长度和边权和。分析最长的路径很好求,在DAG上拓扑排序后动态规划即可。(具体的实现可以参考OI-Wiki)现在的......
  • 为什么Java接口接收请求整型数据需要使用包装类Long
    在Java中,接口(Interface)是抽象方法的集合,它定义了对象之间交互的契约。但是,接口本身并不直接处理数据。当你说“Java接口接收请求整型数据需要使用包装类Long”,我猜你可能是指在某个方法签名中,接口定义了一个接收Long类型参数的方法,而不是基本类型int。原因主要有以下几点:可......
  • 1071 - Specified key was too long; max key length is 767 bytes
    1071-Specifiedkeywastoolong;maxkeylengthis767bytes问题背景问题分析处理问题背景今天在Mysql建表的过程中,遇到了一个这样的问题,错误信息1071-Specifiedkeywastoolong;maxkeylengthis767bytes下面来分析如何处理问题分析处理根据错误......
  • Long long类型比较大小
    long与Longlong类型和Long类型是不一样,long类型属于基本的数据类型,而Long是long类型的包装类。结论long是基本数据类型,判断是否相等时使用==,即可判断值是否相等。(基本数据类型没有equals()方法)。Long是引用数据类型,当其数值在[-128,127]之间时,用==判断是否相等,亦可用......
  • Java对象转换失败-Long类型转Integer类型
    对象转换工具类/***转换工具类*/publicclassConvertUtils{privatestaticLoggerlogger=LoggerFactory.getLogger(ConvertUtils.class);publicstatic<T>TsourceToTarget(Objectsource,Class<T>target){if(source==null){......