首页 > 其他分享 >CF1987C Basil's Garden 题解

CF1987C Basil's Garden 题解

时间:2024-08-01 22:38:48浏览次数:14  
标签:Garden int 题解 max Basil CF1987C

CF1987C Basil's Garden 题解


壹·题目描述

有 $n$ 个数字排成一排,接下来每隔一秒进行一次操作:
如果 $i=n$ 或 $h_i>h_{i+1}$,则第 $i$ 盆花的高度 $h_i$ 将变为 $\max(0,h_i-1)$。请问至少经过多少秒后,所有的数字都为$0$。

贰·思路分析

可以知道,$h_i \leq 1$时$h_i←0$。显然可以换个思路,倒推分析,有公式:
$$A_i←max{(A_i+1,h_i)}$$
那么需要花费$a_{i+1}+1$或$i$秒的时间。

贰·代码实现

#include<bits/stdc++.h>
using namespace std;
int n,t,a[1e5+10],k;//定义大一点,空间OK的 

int main()
{
    cin>>t;
    for(int i=1;i<=t;i++)//一共t组数据,故循环输入,并处理数据 
    {
    	k=0;
		cin>>n;
        for(int i=1;i<=n;i++) cin>>a[i];//输入 
        for(int i=1;i<=n;i++) k=max(a[i]+i,k);//公式处理 
        cout<<k-1<<endl;//注意不是k 
	}
    return 0;
}
//很短的

标签:Garden,int,题解,max,Basil,CF1987C
From: https://www.cnblogs.com/Heike-BZN/p/18337730

相关文章

  • [题解]P6927 [ICPC2016 WF] Swap Space
    思路显然要按\(a_i,b_i\)的大小关系分类:\(a_i<b_i\):假令有两对数\((a_1,b_1),(a_2,b_2)\),且\(a_1\leqa_2\)。如果\(b_1\geqa_2\)。则按照12的顺序,将带来\(a_1\)的花费,以及\(b_1+b_2\)的额外空间;而按照21的顺序,将带来\(a_2\)的花费,以及\(b_1+b_2......
  • CF553E Kyoya and Train 题解
    Description给定一张\(n\)个点\(m\)条边的无重边无自环的有向图,你要从\(1\)号点到\(n\)号点去。如果你在\(t\)时刻之后到达\(n\)号点,你要交\(x\)元的罚款。每条边从\(a_i\)到\(b_i\),走过它需要花费\(c_i\)元,多次走过同一条边需要多次花费。走过每条边所需......
  • 【问题解决方案】npm install报错问题:npm ERR! - 多种解决方案,总有一种可以解决
    @[toc]1.问题重述安装package.json里面的包,使用npminstall但是报错2.解决方案方案1.确认根目录正确确认自己的目录是根目录(也就是处于./package.json可以找到的位置)例如--根目录----package.json----其他文件----其他文件方案2.确认文件名正确确认自己的pack......
  • P9308 「DTOI-5」#1f1e33 题解
    声明:截止\(2024.8.1\),拿下洛谷最优解最短解,代码长度不到1k。复杂度\(O(n\log\logn)\)。先骂:官方题解菜!这种纯洁的数论题居然敢引入NTT作为标算,说明出题人不会推式子。还有题解区一车\(\log\)的题解凭啥顶那么上面,推的一坨狗屎推出来的复杂度还不优秀。说明:下面除法默......
  • 2024牛客暑期多校训练营6 A.cake(题解)
    A.Cake题意两个人玩游戏,游戏分两阶段第一阶段在一棵有根树上轮流走,走到叶子停止,有根树边上有01标记,记录下走过的01串第二阶段分蛋糕,Oscar按自己的意愿切蛋糕,然后按照第一阶段获得的01串顺序依次拿蛋糕(1代表Grammy拿,0代表Oscar拿)两人都想让自己获得尽量多的蛋糕,......
  • CF1997F Chips on a Line 题解
    注意到操作是可逆的,可以先把所有筹码移动到位置\(1\),再进行若干次操作使筹码数量最小化。那么我们只需要对每一个\(i\)知道有多少种情况把筹码全移动到位置\(1\)后恰好有\(i\)个筹码,和这类情况的最少筹码数。记\(f_i\)表示斐波那契数列的第\(i\)项,显然一个位置\(i\)......
  • Luogu P1613 跑路 题解 [ 蓝 ] [ 倍增 ] [ Floyd 最短路 ] [ 状压 dp ]
    跑路:绝佳倍增好题,思路是化\(2^k\)为\(1\),倍增起预处理作用。最近不知道是撞了什么运,前一脚看的是绿题,写完之后交一发,发现直接被lxl升蓝了,血赚。思路:Floyd首先观察到每次走\(2^k\)的代价为\(1\),我们可以预处理出每次走\(2^i\)能到哪些点。但为了让这题的代码更好实......
  • 题解:CF1015D Walking Between Houses
    题解:CF1015DWalkingBetweenHouses算法模拟,分类讨论分析首先,设每步走的距离为\(t_i\),我们发现\(t_i\)应是满足\(1\let_i\len-1\)的。那么就很容易推出NO的情况:当\(s<k\)时,由于每一步都要至少走一个单位,所以\(k\)次步数肯定用不完,而题目要求恰好\(k\)次;当......
  • CF716B Complete the Word 题解
    CF716BCompletetheWord题解分析首先观察数据范围是\(50000\),可以考虑\(O(n)\)暴力。在字符串中枚举子串开始的位置\(i\),然后再枚举\(i\)到\(i+25\),开个桶统计每个大写字母出现的次数,如果大于\(1\)就直接break。统计完之后剩下的就都是问号了,可以随便填,所以这个子......
  • P3043 [USACO12JAN] Bovine Alliance G 题解
    P3043[USACO12JAN]BovineAllianceG题目传送门思路首先分情况讨论每种联通块的可能,有三种不同的情况会对答案\(ans\)产生不同的贡献。联通块有环如图,因为每条边都有要有归属,所以环上的边只能全都顺时针或逆时针属于某个点,且不在环上的点仅有一种可能。因此该情况对答......