首页 > 其他分享 >P3572 [POI2014] PTA-Little Bird

P3572 [POI2014] PTA-Little Bird

时间:2024-07-22 18:19:05浏览次数:16  
标签:pre Little int back POI2014 转移 飞过来 Bird dp

原题链接

题解

首先,考虑接下来往哪颗树飞是很困难的,因为当前的决策会影响之后的决策

但是如果考虑到达当前树从哪里飞过来就比较好了,因为无后效性

接着我们可以暴力做法,遍历每棵树从前 \(k\) 个树飞过来的值,然后取最小的那个,但是这样显然会超时,所以我们优化一下

有哪些值得被优化的地方?--有很多无用决策点

什么是无用决策点?请看下文

对于两棵相邻的树,\(i,i+1\),设 \(dp[i]\) 为到达该树的最小疲劳值

  • 如果 \(dp[i]\geq dp[i+1]\) 同时 \(h[i]\leq h[i+1]\)

那么我们可以抛弃转移点 \(i\),因为能从 \(i\) 飞过来的选择,也一定能从 \(i+1\) 飞过来,且不劣

  • 如果 \(dp[i] > dp[i+1]\) 同时 \(h[i]\gt h[i+1]\)

那么我们可以抛弃转移点 \(i\),因为能从 \(i\) 飞过来的选择,也一定能从 \(i+1\) 飞过来,且不劣

解释:如果后面有 \(h[i+1] \lt h[j] \leq h[i]\) ,那么两个转移点的效果是一样的,否则 \(i+1\) 更优

  • 如果 \(dp[i] == dp[i+1]\) 同时 \(h[i]\gt h[i+1]\)

都保留,因为对于 \([i+2,i+k]\) 的树来说,从 \(i\) 转移过来更优,但是 \(i+k+1\) 或许需要转移点 \(i+1\)

  • 如果 \(dp[i] < dp[i+1]\)

都保留,因为对于 \([i+2,i+k]\) 的树来说,从 \(i\) 转移过来更优,但是 \(i+k+1\) 或许需要转移点 \(i+1\)

因此,我们可以维护一个队列,该队列特性为从队首到队尾,其下标递增,疲劳值递增,疲劳值相同的点树的高度递减

code

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

int dp[1000006]={0},h[1000006]={0};

void solve()
{
    int n;
    cin>>n;

    for(int i=1;i<=n;i++) cin>>h[i];

    int q;
    cin>>q;

    while(q--)
    {
        int k;
        cin>>k;

        deque<int> pre;

        pre.push_back(1);
        dp[1]=0;

        for(int i=2;i<=n;i++)
        {
            if(pre.front()<i-k) pre.pop_front();

            dp[i]=dp[pre.front()]+(h[i]>=h[pre.front()]);

            while(pre.size()&&(dp[pre.back()]>dp[i]||dp[pre.back()]==dp[i]&&h[pre.back()]<=h[i])) pre.pop_back();

            pre.push_back(i);

            //cout<<dp[i]<<'\n';
        }

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


标签:pre,Little,int,back,POI2014,转移,飞过来,Bird,dp
From: https://www.cnblogs.com/pure4knowledge/p/18316638

相关文章

  • 基于Linux的Flappy bird游戏开发
    gitee源码获取链接:一、项目功能按下空格键小鸟上升,不按空格键小鸟下降。搭建小鸟需要穿过的管道。管道自动左移和创建。小鸟与管道碰撞游戏结束。二、知识储备C语言。数据结构——链表。Ncurses库。信号机制。三、项目框图四、Ncurses库问题引入?如何显示游戏界......
  • Firebird数据库修复
    一、前期准备断开数据库连接:确保所有与Firebird数据库的连接都已断开,避免在修复过程中发生数据冲突或损坏。备份数据库:在进行任何修复操作之前,使用Firebird提供的gbak工具或其他备份工具对数据库进行完整备份。备份文件将在修复过程中起到关键作用,以防修复失败导致数据丢失。......
  • CF453C Little Pony and Summer Sun Celebration
    CF453CLittlePonyandSummerSunCelebration生成树+构造看看一个点的奇偶性意味着什么。意味着奇数的点必须经过至少一次,而偶数不用经过。那么所有奇数的点两两路径必须构成一个连通块。然后就可以开始想构造了。考虑连通块上的任意一棵生成树,如果一个非根节点走完子树后次......
  • 蛇鹫优化算法(Secretary bird optimization algorithm,SBOA)的复杂城市地形下无人机避障
    一、部分代码蛇鹫优化算法(Secretarybirdoptimizationalgorithm,SBOA)由FuYoufa等人于2024年提出,该算法的灵感来自于蛇鹫在自然环境中的生存行为。参考文献:[1]FuY,LiuD,ChenJ,etal.Secretarybirdoptimizationalgorithm:anewmetaheuristicforsolvinggloba......
  • Topcoder SRM592-Div1-Lv2 LittleElephantAndPermutationDiv1
    题意设\(A,B\)为两个长为\(n\(\leq50)\)的排列,定义操作\(F(A,B)=\sum\limits_{i=1}^{n}\max(A_i,B_i)\),给定\(n,k\),求有多少种有序对\((A,B)\)满足\(F(A,B)\geqk\),答案模\(10^9+7\)。思路首先还是用经典的思路将无序转为无序,我们假定\(A\)是有序的即\(A={1,2,3,......
  • [Paper Reading] BEVFormer: Learning Bird’s-Eye-View Representation from Multi-C
    BEVFormer:LearningBird’s-Eye-ViewRepresentationfromMulti-CameraImagesviaSpatiotemporalTransformerslink时间:22.07机构:NanjingUniversity&&ShanghaiAILaboratoryTL;DR利用Transformer的Attention机制融合时空特征信息,在nuScenes测试集上达到SOTA精度,同时......
  • The three little pigs
    Onadarkandwindynight,I,thebigbadwolf,embarkedonmyhuntforthethreelittlepigs.Followingtheirdistinctscent,Itraversedthedenseforestinsearchoftheirwhereabouts.Eventually,Istumbleduponthefirstpig'sstrawhouseinan......
  • Little Pony and Lord Tirek 题解
    LittlePonyandLordTirek题解\(\texttt{ProblemLink}\)题目大意给定长度为\(n\)的序列,第\(i\)个数有三个值:\(s_i,m_i,r_i\),每秒对于每个数执行\(s_i\leftarrow\min\{s_i+r_i,m_i\}\)。有\(m\)个查询,每次查询三个值:\(t,l,r\)查询时刻\(t\),\([l,......
  • POI2014
    P3569KAR如何判断某个卡牌顺序能否通过反转形成一个单调不降的序列?使用贪心。我们将第一张卡牌翻到更小的一面。对于后面的卡牌,若小的一面大于等于前一张卡的当前面值,则翻到小的一面。否则若大的一面大于等于前一张卡的当前面值,则翻到大的一面。仍不满足则无解。为了对付单点......
  • The Little Match Girl
    TheLittleMatchGirlIt was a snowy winter night. A poor little girl was walking around the street selling matches.She was dressed in shabby clothes and had no shoes on."Matches! Please buy my matches!"She was very cold andhu......