小辰的智慧树(差分+前缀和)

news/2024/11/13 3:45:46/

登录—专业IT笔试面试备考平台_牛客网

1.考虑总长度之和不能超过m,2考虑限制每棵树高度不能低于ci,如果用二分最短输能截到的高度,还要另外去判断,是否每棵树mid都能严格大于ci ,这样容易超时,换个角度,每棵树我能截到的高度是从a到b,而且最优解是每次只截一个单位长度,因此我想要结果越大就要保持我截到的越高越好,差分和前缀和将所有能截到的位置统计起来,并统计了每个位置有几棵树能截,从最高位置遍历,累加总数不超过m即可

#include<bits/stdc++.h>
using namespace std;
//#define int long long
typedef long long ll;
const int N=2e6+10;
#define endl '\n'
ll sum[N],x[N];
int main(){ll n,m;cin>>n>>m;int a,b;for(int i=1;i<=n;i++){cin>>a>>b;x[b+1]++;//(从b+1的高度开始截,截完后树的高度刚好是b即刚好大于等于ci)x[a+1]--;}ll ans=0;sum[0]=x[0];for(int i=1;i<=2e6+10;i++){sum[i]=sum[i-1]+x[i];}for(int i=2e6+10;i>=0;i--){if(sum[i]){ll xx=min(m,sum[i]);m-=xx;ans+=xx*(2*i-1);//(x*(i+i-x)if(m<=0)break;}}cout<<ans<<endl;
}

 


http://www.ppmy.cn/news/1241389.html

相关文章

c++ 栈空间 堆空间

1 栈空间 int main() {Subclass1 subclass1;subclass1.xFunction();return 0; } 这种情况下,subclass1对象会直接在栈空间上创建,而不会在堆空间上动态分配。 但是这种栈上创建的对象有一定的限制: 1. 栈空间内存有限,对象过大可能会栈溢出 2. 出了作用域后对象会被自动销毁 3…

AT89S52单片机智能寻迹小车自动红外避障趋光检测发声发光设计

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;寻迹 获取完整说明报告源程序数据 小车具有以下几个功能&#xff1a;自动避障功能&#xff1b;寻迹功能&#xff08;按路面的黑色轨道行驶&#xff09;&#xff1b;趋光功能&#xff08;寻找前方的点光源并行驶到位&…

GraphQL—构建多服务架构的数据层

简介 作为 Facebook 在 2015 年推出的查询语言&#xff0c;GraphQL 能够对 API 中的数据提供一套易于理解的完整描述&#xff0c;使得客户端能够更加准确的获得它需要的数据 现在的web系统大多是基于restful的&#xff0c;我们知道&#xff0c;REST强调以资源来划分系统&#x…

数据挖掘之PCA-主成分分析

PCA的用处&#xff1a;找出反应数据中最大变差的投影&#xff08;就是拉的最开&#xff09;。 在减少需要分析的指标同时&#xff0c;尽量减少原指标包含信息的损失&#xff0c;以达到对所收集数据进行全面分析的目的 但是什么时候信息保留的最多呢&#xff1f;具体一点&#…

Leetcode—94.二叉树的中序遍历【简单】

2023每日刷题&#xff08;四十&#xff09; Leetcode—94.二叉树的中序遍历 C语言实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ /*** Note: The returned array mus…

C#面试题3

1.请解释一下C#中的并发编程和线程安全性。 并发编程是指在多线程环境下编写代码以实现并发执行的能力。C#提供了一些机制来支持并发编程&#xff0c;如线程、任务和并行循环等。线程安全性是指在多线程环境下&#xff0c;代码能够正确地处理共享数据并保持一致性。线程安全的代…

SSL握手失败的解决方案

一、SSL握手失败的原因&#xff1a; 1&#xff0c;证书过期&#xff1a;SSL证书有一个有效期限&#xff0c;如果证书过期&#xff0c;就会导致SSL握手失败。 2&#xff0c;证书不被信任&#xff1a;如果网站的SSL证书不被浏览器或操作系统信任&#xff0c;也会导致SSL握手失败…

debian 12设置静态ip、dns

debian 12设置静态ip、dns 1、设置静态ip2、设置dns 1、设置静态ip 查看网卡名称是ens33 ip address编辑网卡配置文件 vi /etc/network/interfaces默认情况是这样的 在最后面添加下面内容 其中ens33是上步中查询到的网卡名称 auto ens33 iface ens33 inet static address…