首页 > 其他分享 >牛客小白月赛98补题

牛客小白月赛98补题

时间:2024-07-20 14:00:37浏览次数:10  
标签:98 int ll long 牛客 solve 补题 DP

D一道很典型的区间DP

//区间DP典题
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 520;
ll n, L, R;
string s;
ll sum0[N], sum1[N];
ll f[N][N];
void solve()
{
    cin >> n >> L >> R >> s;
    s = ' ' + s;
    for (int i = 1; i <= n; i++)
    {
        sum0[i] = sum0[i - 1] + (s[i] == '0');
        sum1[i] = sum1[i - 1] + (s[i] == '1');
    }

    for (int len = 1; len <= n; len++)//枚举长度
    {
        for (int l = 1; l + len - 1 <= n; l++)//枚举左端点
        {
            if (len == 1)continue;
            int r = l + len - 1;
            for (int k = l; k < r; k++)
            {
                int x = abs(sum0[k] - sum0[l - 1] - sum1[r] + sum1[k]);
                if (L <= x && x <= R)f[l][r] = max(f[l][r], f[l][k] + f[k+1][r] + 1);
            }

        }
    }
    cout << f[1][n] << endl;
}
int main() 
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int t=1;
    //cin >> t;
    while (t--) 
    {
        solve();
    }

    return 0;
}

标签:98,int,ll,long,牛客,solve,补题,DP
From: https://blog.csdn.net/m0_74237834/article/details/140492152

相关文章

  • CF1698 F
    CF1698F不错的题目。考虑必要条件,也就是不变量,发现操作不改变相邻二元组集合,且不能改变\(a_1,a_n\)。那么必要条件就是\(a,b\)相邻二元组集合相等和\(a_1=b_1,a_n=b_n\)。通过构造证明充分性。对于此类从\(a\)操作到\(b\)的问题,且操作可逆,不妨考虑中间状态\(c\),考虑......
  • 2024牛客暑期多校训练营1
    A:ABitCommon题目大意:建立一个长度为n且每个数严格小于\(2^m\)的非空序列A使其存在一个非空子序列B,B中所有元素的与运算结果为1,输出合法A序列的个数。思路:存在子序列合法即该序列合法,其他元素无要求。即可以枚举合法子序列的长度,其他元素均为必定非合法整数。又因为需要结果为......
  • CodeForces Round #959 sponsored by NEAR (Div. 1 + Div. 2) 补题记录(A~E)
    简单场.pngA若\(n\timesm=1\)则显然无解。否则因为\(a\)矩阵是一个\(n\timesm\)的排列,所以说只需要让其循环右移一位即可。时间复杂度\(O(nm)\)。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintN=500100;inta[233][233];sign......
  • 2024牛客暑期多校训练营1 解题报告
    A-ABitCommon通过该题的性质可以知道偶数的关系不影响能够成立的序列我们只讨论最后一位为1的数这些数才能对该序列造成影响又因为对于每个特殊序列中每位必定有一个0所以特殊序列的个数为C(n,k)*2((m-1)*(m-n))*(2(m-1)-1)^(n-k)点击查看代码#include<bits/stdc++.h>......
  • 杭电多校补题
    1001.循环位移#include<bits/stdc++.h>usingnamespacestd;typedefunsignedlonglongull;constintN=1048580*2;constintP=131;ullp[N],h1[N],h2[N];voidsolve(){stringa,b;cin>>a>>b;intn=a.size()......
  • 2024年牛客暑期多校训练营1 A题 A Bit Common题解
    题目的大意:首先,给你一个长度为n的序列A,A序列中每一个元素全都小于2m,并且大于等于0。A序列要满足存在一个非空子序列的与运算(&)和为1;输出这样的A序列有几个,最后对正整数q取模。(1<=n,m<=5000,1<=q<=109)输入只有一行n,m,q,输出包含一个整数。 题解:要满......
  • 用pandas查看牛客网用户数据(python练习)
    现有一个Nowcoder.csv文件,它记录了牛客网的部分用户数据,包含如下字段(字段与字段之间以逗号间隔):Nowcoder_ID:用户IDLevel:等级Achievement_value:成就值Num_of_exercise:刷题量Graduate_year:毕业年份Language:常用语言你可以使用pandas打开文件,偷偷看一下里面的内容,请输出你看......
  • 0198-增加抗锯齿
    环境Time2022-11-16WSL-Ubuntu22.04Rust1.65.0前言说明参考:https://raytracing.github.io/books/RayTracingInOneWeekend.html目标之前生成的版本,在交界处,能很明显看到锯齿,增加采样和抗锯齿。颜色显示函数pubfnformat_str(&self,samples:f64)->String{......
  • 2024牛客暑期多校训练营2 B.MST(题解)
    题意给一张\(n\)个点,\(m\)条边的无向图,\(q\)次询问,每次询问给\(k\)个结点,问这\(k\)个结点的诱导子图(也就是原图中抽出这些结点,以及原图中这些节点之间有的边)的最小生成树是多少,不连通输出-1,保证\(q\)次询问加起来问到的点的数量\(\sumk_i\leq10^5\)。思路......
  • 牛客多校H题题解
    链接:[https://ac.nowcoder.com/acm/contest/81597/H]来源:牛客网题目描述Redstandsatthecoordinate\((0,0)\)oftheCartesiancoordinatesystem.Shehasastringofinstructions:up,down,left,right(where'right'increasesthex-coordinateby\(1......