贪心,排序,二分,分治

news/2025/11/7 21:59:06/文章来源:https://www.cnblogs.com/dfgz/p/19200973

题目描述

马上就要放暑假啦!

为了激励一下公司的员工,徐老师决定给所有人发奖金!

发奖金的方式非常简单,徐老师会在桌上一字排开 \(n\) 张纸团,每张纸团上会写着一个数字 \(a_i\),为了平衡公司成本,这里的数字可能会存在负数

游戏规则是:每人只能抓一次,只能抓取一段连续的纸团,所有纸团上的数字和就是这次可以获得的奖金,如果有人不幸获得了负数的奖金,那么就意味着他要被扣掉对应的工资,所以徐老师也允许大家选择不抓纸团,那么奖金就是 \(0\)

现在石老师是第一个抽奖金的人,石老师想知道,他一共有多少种不同的方案可以获得至少 \(k\) 元的奖金?

输入格式

输入第一行包含一个整数 \(n,k\) 含义如题

输入第二行包含 \(n\) 个整数,\(a_i\) 依次表示每个纸团上的数字

输出格式

输出一个整数表示有多少种不同的方案

对于 \(100\%\) 的数据:\(1\le n \le 3\times 10^5,-10^{18}\le k \le 10^{18},-10^9\le a_i\le 10^9\)

点击查看
bool M1;
#include<bits/stdc++.h>
#define int long long
const int N = 2e6+10, inf = 1e18;
using namespace std;
inline int read() {int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9') f=ch=='-'?-1:1,ch=getchar();while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();return x*f;
}
int n,K,a[N],ans,mp[N]; int b[N],tot;
bool cmp(int x,int y) {return x>y;}
int get(int l,int r,int k) {int res=0;while(l<=r) {int mid=(l+r)>>1;if(b[mid]>=k) l=mid+1,res=mid;else r=mid-1;} return res;
}
void solve(int l,int r) {if(l==r) {if(a[l]>=K) ++ans;return ;}int mid=(l+r)>>1; solve(l,mid);solve(mid+1,r);tot=0;mp[mid]=a[mid];b[++tot]=mp[mid+1]=a[mid+1];for(int i=mid-1;i>=l;i--) mp[i]=mp[i+1]+a[i];for(int i=mid+2;i<=r;i++) mp[i]=mp[i-1]+a[i],b[++tot]=mp[i];sort(b+1,b+tot+1,cmp); for(int i=mid;i>=l;i--) ans+=get(1,tot,K-mp[i]);
} bool M2;
signed main() {cerr<<(&M2-&M1)/(1024*1024)<<'M'<<'B'<<endl;freopen("money.in","r",stdin);freopen("money.out","w",stdout);n=read();K=read(); if(K<=0) ans++;for(int i=1;i<=n;i++) a[i]=read();solve(1,n); return cout<<ans,0;
}

贪心+排序

  • P14361 [CSP-S 2025] 社团招新 / club(官方数据)

贪心

  • P5019 [NOIP 2018 提高组] 铺设道路

贪心+二分

  • P4447 [AHOI2018初中组] 分组

贪心+二分

  • P9755 [CSP-S 2023] 种树

贪心+二分

  • P5021 [NOIP 2018 提高组] 赛道修建

二分

  • P1873 [COCI 2011/2012 #5] EKO / 砍树

贪心

  • P1668 [USACO04DEC] Cleaning Shifts S

二分

  • P1462 通往奥格瑞玛的道路

二分

  • P6099 [USACO19FEB] Dishwashing G

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python01

练习编程语言:是我们与计算机交流的介质 编程:用编程语言写出一个个文件,最后达到我们的目的 编程有什么用:让计算机来帮我们干活 因为了解清楚才能学好所以引出下面的内容。 计算机组成原理 控制器 类似于大脑来控…

C语言实现数据结构顺序表

1.顺序表的定义 线性表可分为两种存储结构,一种是顺序存储结构,一种是链式存储结构。一般来说,顺序表是一个相同数据类型的集合,且内存地址一定相邻。在C语言中,一般使用数组实现。 2.顺序表的存储结构 使用结构体…

AI Compass前沿速览:Cursor 2.0、Firefly Image5、Agent HQ 、LongCat-Video、Kimi-k2 Thinking

AI Compass前沿速览:Cursor 2.0、Firefly Image5、Agent HQ 、LongCat-Video、Kimi-k2 ThinkingAI Compass前沿速览:Cursor 2.0、Firefly Image5、Agent HQ 、LongCat-Video、Kimi-k2 Thinking AI-Compass 致力于构建…

25.11.7联考题解

A 简单题,考虑一个串变化后不同并且计数不重不漏只须保证区间两端不同即可。 B 简单贪心。shopping plans 的超级弱化版。 C 设 \(f_i\) 表示被分在 \(\le i\) 的 L 型的方案数,显然有 \(f_i=\left(\sum_{j=x-i}^{x-…

浅谈dp中的最优化、计数问题

前言 诚然,这东西本来是一个挺好的东西的,但是如果它染上了数学,那么就不那么好了。 我承认,我的分类和题目选取是不够全面、不够有代表性的,因为这只是写给我自己看的。 这东西有三个难点:状态,转移,优化。(…

CF715B

给定 \(n\) 个点 \(m\) 条边的无向图,以及 \(s, t, L\)。每条边有边权(有些被抹去),你要为每个被抹去的边权赋一个正整数值使得 \(s \rightarrow t\) 的最短路为 \(L\)。 \(n, m \le 10^5,L \le 10^9\)首先把所有未…

[NOIP 2001 提高组] 一元三次方程求解

看题目数据范围: 方程存在三个不同实根(根的范围在 −100 至 100 之间) 可以知道这道题其实可以暴力 #include <iostream> #include <cstdio> using namespace std; int main() {double a,b,c,d;scanf(&…

EPnP算法学习随笔

EPnP算法学习随笔这几天刚好在看epnp算法,写篇随笔简要回顾一下。 PnP问题是个很经典的问题,就是根据图像上的关键点来估计相机的位姿,这里主要研究的是单目摄像机,但是值的注意的是单目的精度一般都比较差,因为单…

毒盘未转存仅支持在线观看30s

毒盘未转存仅支持在线观看30s转载,原作者不详 解决方案:控制台里面输入这些代码,回车。 let video = document.querySelectorAll("#html5player_html5_api")[0] video.controls="true" video.p…

Advantech iView SQL注入漏洞分析:认证绕过与数据泄露

本文详细分析了CVE-2022-50594漏洞,涉及Advantech iView SNMP管理工具中的SQL注入漏洞,攻击者可绕过认证窃取包括明文密码在内的用户数据,CVSS评分8.8分。概述 CVE-2022-50594是Advantech iView软件中存在的一个高危…

【机器学习入门】7.1 决策树 —— 像 “判断流程图” 一样做分类 - 教程

【机器学习入门】7.1 决策树 —— 像 “判断流程图” 一样做分类 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

P14322 「ALFR Round 11」E 空崎ヒナ 小结

首先把 x 移个项,变成 abs(b[i]-x)。 然后你发现这个东西就是 max a_i 的倍数了。 这个东西很好写,首先你先预处理单调栈和后缀答案。 后缀答案不能在线,于是离线处理。 然后你发现回答询问也不能在线。 于是你再离…

AI元人文:理论自省与客观评估

AI元人文:理论自省与客观评估引言:在理想与现实之间 AI元人文理论作为一种突破性的价值共识框架,其生命力不仅在于理论建构的完整性,更在于持续的自我审视与客观评估。本文旨在以三值纠缠思维为镜,对这一理论体系…

[Element Plus 组件库的官方 API 参考文档] 的部分内容的解释

对于初学者,不需要死记硬背这个 API 文档。更好的学习顺序是:先看组件的基础示例和演示代码 → 模仿着写出能运行的代码 → 有特殊需求时,再回头查这个 API 文档Q1: 除了template是插槽,怎么连el-menu-item都是?…

ZK笔记

1.官网下载地址 https://zookeeper.apache.org/ https://archive.apache.org/dist/zookeeper/ 2.安装步骤 1.安装jdk 2.解压压缩包 tar -xf apache-zookeeper-3.5.7-bin.tar.gz -C /tol/app mv apache-zookeeper-3.5…

完整教程:《以 Trae 为桥:高效集成豆包 1.6 API 的实践与思考》

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:Labview项目01:标准可配置序列测试框架

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20251107

每次写类的时候都会觉得发明面向对象的人真是个天才。 今天晚上又稍微写了点,增加了碰撞伤害,现在玩家碰到怪物会回扣怪物.at血量并进入一秒的无敌状态,并且自身颜色变为白色,也是第一次体会到异步的方便之处吧。更…

从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题

从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题 1. TCP黏包拆包问题介绍 在上一篇博客中,lab9版本的MyNetty已经实现…