首页 > 其他分享 >修剪草坪

修剪草坪

时间:2024-07-23 21:54:51浏览次数:4  
标签:罢工 修剪 cout int tt 草坪 com sum

https://www.acwing.com/problem/content/description/1089/

https://class.51nod.com/Html/Textbook/ChapterIndex.html#textbookId=126&chapterId=337

由于是连续的会罢工,所以每次我们考虑的就是连续一段奶牛工作。

如果 \(f_i\) 表示最大效率,需要求前缀和。

但是如果 \(f_i\) 表示 \(i\) 罢工时前 \(i\) 的最小损失,那么只需要枚举工作段,然后加上损失。

注意不超过 \(k\) 不会罢工,所以是 \((i-k-1,i)\)。

需要分配完所有的,所以不能只对 \(f\) 取 \(min\),最后可以加一个空的位置 \(n+1\)。

#include<iostream>
using namespace std;
const int N=100010;
int n,k,a[N],q[N];
typedef long long ll;
ll sum,f[N],ans=1e18;
int main(){
    #ifdef LOCAL
    freopen("1.txt","r",stdin);
    #endif
    #ifndef LOCAL
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    #endif
    cin>>n>>k;
    for(int i=1;i<=n;++i)cin>>a[i],sum+=a[i];
    int hh=0,tt=0;
    for(int i=1;i<=n+1;++i){
        while(hh<=tt&&q[hh]<i-k-1)++hh;
        f[i]=a[i]+f[q[hh]];
        while(hh<=tt&&f[q[tt]]>=f[i])--tt;
        q[++tt]=i;
    }
    cout<<sum-f[n+1];
    return 0;
}

标签:罢工,修剪,cout,int,tt,草坪,com,sum
From: https://www.cnblogs.com/wscqwq/p/18319718

相关文章

  • 代码随想录算法训练营第23天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树
    代码随想录算法训练营第22天|669.修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树修剪二叉搜索树:https://leetcode.cn/problems/trim-a-binary-search-tree/description/代码随想录:https://programmercarl.com/0669.修剪二叉搜索树.html#......
  • 题解 - 修剪草坪
    题目(in洛谷)或题目(inhszxoj)题目大意给定\(n\)个非负整数\(a_1\cdotsa_n\)。现在你可以选择其中若干个数,但不能有超过\(k\)个连续的数字被选择。求选出的数字的和最大。思路简析一个比较好的思路是反向思考:选择某些间隔小于等于\(k\)(相邻间隔为\(0\))的数字,求选......
  • 代码随想录算法训练营第二十三天 | 669.修剪二叉搜索树 108.将有序数组转换为二叉搜索
    669.修剪二叉搜索树题目链接文章讲解视频讲解classSolution{public:TreeNode*trimBST(TreeNode*root,intlow,inthigh){if(root==nullptr)returnnullptr;//当前值小于左边界时,当前节点的左子树全部小于左边界,所以全部删除,直接处理右子树......
  • 代码随想录算法训练营第第23天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索
    修剪二叉搜索树这道题目比较难,比添加增加和删除节点难的多,建议先看视频理解。题目链接/文章讲解:https://programmercarl.com/0669.修剪二叉搜索树.html视频讲解:https://www.bilibili.com/video/BV17P41177ud/***@param{TreeNode}root*@param{number}low*@pa......
  • 世微AP2121太阳能草坪灯驱动芯片
    概述AP2121是一款专为太阳能LED草坪灯设计的专用集成电路。仅需一个外接电感即可组成太阳能照明装置。由开关型驱动电路、光控开关电路、过放保护电路、内部集成的肖特基二极管等电路组成。AP2121采用专利技术,使得欠压关断时LED灯无闪烁AP2121工作电压为0.9V到1.5V,适合......
  • Mybaits使用SQL拦截器实现字符串修剪
    概述一般情况下,保存到数据库中的字符串类型的数据,我们一般都不希望它前后带着空格,类似于"哈哈哈"。在业务中,如果每一个保存到数据库中的SQL都去对字符串参数进行trim的操作,这是很繁琐的,且容易漏掉。解决方案使用Mybatis的拦截器,拦截每一个SQL,针对SQL中的字符串参数进行tr......
  • 669. 修剪二叉搜索树(leetcode)
    https://leetcode.cn/problems/trim-a-binary-search-tree/description/要点是区分在区间左边还是右边,在区间左边那么右子树也还有必要去查找删除,右边同理,返回的是删除后新树的根节点要注意函数要实现单层逻辑和完成闭环语义classSolution{//查找要删除的节点,进行......
  • 代码随想录算法训练营第二十三天(二叉树9)|669. 修剪二叉搜索树、108. 将有序数组转换为
    文章目录669.修剪二叉搜索树解题思路源码108.将有序数组转换为二叉搜索树解题思路源码538.把二叉搜索树转换为累加树解题思路源码669.修剪二叉搜索树给你二叉搜索树的根节点root,同时给定最小边界low和最大边界high。通过修剪二叉搜索树,使得所有节点的值......
  • 代码随想录算法训练营第23天|669. 修剪二叉搜索树|108.将有序数组转换为二叉搜索树|53
    代码随想录算法训练营第23天|669.修剪二叉搜索树|108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树|总结篇669.修剪二叉搜索树这道题目比较难,比添加增加和删除节点难的多,建议先看视频理解。题目链接/文章讲解:https://programmercarl.com/0669.%E4%BF%A......
  • 代码随想录 第23天 | 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 5
    leetcode:669.修剪二叉搜索树-力扣(LeetCode)classSolution{publicTreeNodetrimBST(TreeNoderoot,intlow,inthigh){//和删除差不多,怕删除的节点的左右孩子节点有符合范围的,所以要每次判断一下,如果有不符合要求的就直接返回上一个节点。if(roo......