首页 > 其他分享 >P3147 [USACO16OPEN] 262144 P

P3147 [USACO16OPEN] 262144 P

时间:2024-05-13 18:21:19浏览次数:22  
标签:P3147 int 元素 262144 消掉 USACO16OPEN 300005 dp

原题链接

题解

1.常见思路: \(dp[l][r]\) 为把 \([l,r]\) 内的元素全部消掉留下一个元素的值,然后枚举中间点
但是这样内存不够,观察到 \(a_i \in [1,40]\) ,我们可以换个思路,由于区间 \([l,r]\) 内全部消掉留下一个元素的值 \(v\) , 其中 \(l,r,v\) 都是固定的
所以我们可以令 \(dp[i][v]\) 为左端点为 \(i\) ,全部消掉留下一个元素 \(v\) 的右端点的值

状态转移方程:

\(dp[i][v]=dp[dp[i][v-1]][v-1]\)

code

#include<bits/stdc++.h>
using namespace std;
int a[300005]={0},dp[300005][65]={0};
int main()
{
    int n;
    cin>>n;

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

    int ans=1;
    for(int k=2;k<=58;k++)
    {
        for(int i=1;i<=n;i++)
        {
            if(dp[i][k-1]) dp[i][k]=dp[dp[i][k-1]+1][k-1];
            if(dp[i][k]) ans=k;
        }
    }

    cout<<ans;
    return 0;
}

标签:P3147,int,元素,262144,消掉,USACO16OPEN,300005,dp
From: https://www.cnblogs.com/pure4knowledge/p/18189742

相关文章

  • 洛谷题单指南-动态规划2-P3147 [USACO16OPEN] 262144 P
    原题链接:https://www.luogu.com.cn/problem/P3147题意解读:将一组数据两两相邻且相同的合并,合并成一个数值+1的数,求合并后的最大值。解题思路:考虑合并后的最大数i,其最后一次必然是由两个i-1合并而来的设dp[i][j]表示以j为左端点,合并最大值为i时的右端点的下一个位置如图:dp[i......
  • [262144 P]
    262144P题目描述游戏一开始有\(n\)个正整数,\((2<=n<=262144)\),范围在\(1-40\)。在一步中,贝西可以选相邻的两个相同的数,然后合并成一个比原来的大一的数(例如两个7合并成一个8),目标是使得最大的数最大,请帮助Bessie来求最大值思路我们假设所有的数全是\(40\)那么最大可以合成出......
  • P6121 [USACO16OPEN] Closing the Farm G
    原题链接题解抽象化抽象成点和边,对于抹除一个点,判断整个图是否联通等价于建立一个点(被抹除点的前一个点),判断这个点与周围点相连后,累积合并次数是否等于点数减一code#definelllonglong#include<bits/stdc++.h>usingnamespacestd;llfa[200005];llfinds(llnow){ret......
  • P3146 [USACO16OPEN] 248 G
    原题链接题解1:\(Code\)#include<bits/stdc++.h>usingnamespacestd;inta[255]={0};intf[255][255]={0};intmain(){intn,ans=0;cin>>n;for(inti=1;i<=n;i++){cin>>a[i];f[i][i]=a[i];an......
  • P3147 [USACO16OPEN] 262144 P
    Link这个题有一个很特殊的点,就是最大值不会超过28,可以想一下最多可以合并多少次。那么常规的区间dp是不能使用的,就要采用特殊的形式,因为很难的确定应该怎么转移,那么就换一种思路,转移的对象变成另外一个端点。\(dp_{i,j}\)表示\(i\)在左边,达到\(j\)的话的右端点位置\(dp_{i,j......
  • P3147 [USACO16OPEN]262144 P
    第十题P3147[USACO16OPEN]262144P题目分析此题为区间\(DP\),却与一般的\(DP\)题不同。能够看出是两个相邻区间合并,但是却不知道具体是哪两个区间。因此,我们需要......
  • shenyu2.5.0解决Exceeded limit on max bytes to buffer:262144
    一、环境shenyu:2.5.0proxy:divide二、异常描述普通请求没有问题,但当json超过1M时会报错org.apache.shenyu.web.handler.GlobalErrorHandler-handleerror:[26ba5fb1-2]......
  • 解决报错max virtual memory areas vm.max_map_count [65530] is too low, increase t
    https://blog.csdn.net/weixin_39643007/article/details/1084351391.搭建ES集群启动之后报如下的错误:   2.从报错信息vm.max_map_count看出内存太小了所以需......
  • luogu P8275 [USACO22OPEN] 262144 Revisited P
    题面传送门这里有个sb写这道题写了一下午。首先来考虑一段子段上的答案,显然答案有一个区间,设最大值为\(E\),则最小值一定在\([E,E+\logn]\)之间。我们考虑按照最大值分......