首页 > 其他分享 >E. Block Sequence

E. Block Sequence

时间:2024-07-15 11:53:21浏览次数:10  
标签:200005 Sequence int long Block 数组 dp

原题链接

题解

仍然是见微知著,假设已知当前数组及其所有子数组的最小删除个数,这时往数组的前面添加一个元素,则这个数要么被删掉,要么作为领头

code

#include<bits/stdc++.h>
#define ll long long
using namespace std;

int a[200005];
int dp[200005];

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

    dp[n+1]=0;
    for(int i=n;i>=1;i--)
    {
        dp[i]=dp[i+1]+1;
        if(i+a[i]<=n) dp[i]=min(dp[i],dp[i+a[i]+1]);
    }
    cout<<dp[1]<<'\n';
}
int main()
{
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t=1;
    cin>>t;
    while(t--) solve();
    return 0;
}


标签:200005,Sequence,int,long,Block,数组,dp
From: https://www.cnblogs.com/pure4knowledge/p/18302892

相关文章

  • 题解:CodeForces 843A Sorting by Subsequences[模拟/排序]
    CodeForces843AA.SortingbySubsequencestimelimitpertest:1secondmemorylimitpertest:256megabytesinputstandardinputoutputstandardoutputYouaregivenasequence\(a_1, a_2, ..., a_n\)consistingofdifferentintegers.Itisrequiredtos......
  • abc134E - Sequence Decomposing
    abc134E-SequenceDecomposing题意:给定一个序列,将其划分成若干个不相交的严格上升子序列,求划分的最小的子序列数量。题解:我们可以定义严格偏序关系,\(i\precj\)当\(i<j\)且\(a_i<a_j\),也就是我们要将整个序列划分成若干个链。根据Dilworth’stheorem,最小链覆盖数=最大......
  • CF1770F Koxia and Sequence(条件统计转组合数计数)
    题意简述给定\(n,x,y\),定义序列\(\{a_n\}\)合法当且仅当\(\sum_{i=1}^na_i=x\)且\(\operatorname{or}_{i=1}^n=y\),你需要求出\(\oplus_{a\\text{is}\\text{valid}}\oplus_{i=1}^na_i\)的值。\(n<2^{40},x<2^{60},y<2^{20}\)。分析第一步:先做一波非常重要的分析答......
  • B. Missing Subsequence Sum
    原题链接题解1.如果没有不能表示出\(k\)的限制,那么数组由一众二次方构成2.对于小于\(k\)的数,考虑\(k\)的最高位\(i\)由于\([0,i-1]\)最多为\(2^i-1\)所以可以考虑添加一个\(k-2^i\)来表示完\([1,k-1]\)内所有的数(尽管有重复)同时删掉\(2^i\)3.对于大于\(k\)......
  • "HIBERNATE_SEQUENCE" does not exist问题处理
    JavaWeb应用在MySQL环境下可以正常运行,数据迁移至Oracle或者人大金仓后应用运行爆出如下错误:严重:Servlet.service()forservlet[JeeCmsAdmin]incontextwithpath[/dhccms]threwexception[org.hibernate.exception.SQLGrammarException:couldnotgetnextsequence......
  • 深入剖析C++的 “属性“(Attribute specifier sequence)
    引言在阅读开源项目源代码是,发现了一个有趣且特殊的C++特性:属性。属性(attributespecifiersequences)是在C++11标准引入的。在C++11之前,编译器特有的扩展被广泛用来提供额外的代码信息。例如,GNU编译器(GCC)使用__attribute__来控制函数的行为。但是缺点也很明显,那就是这种方......
  • mormot.core.threads--TBlockingProcess
    mormot.core.threads--TBlockingProcesstype///TBlockingProcess实例的当前状态TBlockingEvent=(evNone,//无状态evWaiting,//等待状态evTimeOut,//超时状态evRaised);//触发状态{$M+}//开启内存管理消息,用于调试......
  • OC-从内存角度理解block可作为方法传入参数的原因
    从内存管理的角度来看,block可以作为方法的传入参数是因为block在Objective-C中被设计为一种特殊的对象,它们可以在堆(heap)上分配和管理。这使得block可以像其他对象一样被传递、复制和持有。以下是一些关键点,解释为什么block可以作为方法的传入参数:1.Block的类型和内存管理在Obje......
  • POJ3017 Cut the Sequence
    POJ3017CuttheSequence题目大意给定一个一个长度为\(N\)的序列\(A\),要求把该序列划分成若干段,其中每一段中的数的和不大于\(M\),现在需要使得每一段中数的最大值的和最小,求该最小值。\[0\leqn\leq10^5\\0\leqm\leq10^{11}\\0\leqa_i\leq10^6\]解题思路......
  • YOLOv8改进 | Conv篇 | 添加DiverseBranchBlock多元分支模块(有效涨点,重参数化模块高效
    鱼弦:公众号【红尘灯塔】,CSDN博客专家、内容合伙人、新星导师、全栈领域优质创作者、51CTO(Top红人+专家博主)、github开源爱好者(go-zero源码二次开发、游戏后端架构https://github.com/Peakchen)YOLOv8改进|Conv篇|添加DiverseBranchBlock多元分支模块(有效涨点,重参数......