首页 > 其他分享 >Codeforces Round 932 (Div. 2) C. Messenger in MAC

Codeforces Round 932 (Div. 2) C. Messenger in MAC

时间:2024-10-11 15:03:14浏览次数:1  
标签:int res sum Codeforces MAC Messenger heap using message

对于选定的\(p_i\)的情况下,如何使得代价小?显然是按照\(b\)升序的方式。

因此我们可以考虑按照\(b\)进行排序。

考虑一种贪心的做法,我们枚举区间\([l,r]\),这样区间的必选就是\(a_l,a_r, (b_r- b_l)\),因此我们可以贪心的选择剩下\(a\)中的最小值。这样复杂度是\(O(n^3\log n)\)。

考虑优化,我们可以维护一个大根堆,当枚举\(l,r\)的过程中,当\(r\)发生变化时,把\(a_r\)加入到堆中,并维护堆的和\(sum\),当\(sum\)过大时,我们只需贪心的删除堆顶元素即可。

好现在考虑一种情况,会不会出现把\(a_l,a_r\) 从堆中删除的情况?答案是会的,但是这种情况一定不是最优解。

为什么?我们分开考虑,如果把\(a_l\)删去了,记此时堆中下标最小是\(l'\),则一定有\(b_r - b_{l'} \le b_r - b_l\),则说明当前的区间\([l,r]\)不会比\([l',r]\)更优。

#include <bits/stdc++.h>

using namespace std;


using i32 = int32_t;
using i64 = long long;
using ui32 = unsigned int;


using pii = pair<int,int>;


void solve() {
	int n, m;
	cin >> n >> m;
	vector<pii> message(n);
	for(auto &[b,a] : message)
		cin >> a >> b;
	ranges::sort(message);

	int res = 0;
	for(int l = 0; l < n; l ++) {
		int sum = 0;
		priority_queue<int> heap;
		for(int r = l; r < n; r ++) {
			heap.push(message[r].second), sum += message[r].second;
			while(not heap.empty() and sum > m - message[r].first + message[l].first) 
				sum -= heap.top(), heap.pop();
			res = max(res, (i32)heap.size());
		}
	}
	cout << res << "\n";
}

i32 main() {
	ios::sync_with_stdio(false), cin.tie(nullptr);
	int TC;
	cin >> TC;
	while(TC --)
		solve();
	return 0;
}

标签:int,res,sum,Codeforces,MAC,Messenger,heap,using,message
From: https://www.cnblogs.com/PHarr/p/18458343

相关文章

  • mac电脑禁止生成 .DS_Store 文件的解决方法
    一、禁止生成.DS_store文件macOS可以通过命令行修改系统配置,让系统不再在文件夹中生成这个配置文件,命令如下:defaultswritecom.apple.desktopservicesDSDontWriteNetworkStorestrue如果此命令不生效,可以使用下方命令(注意:命令行中-m之后为你的目录,此命令只能指定目录生效)......
  • Codeforces Round 975 (Div. 2)
    Codeforces975div2A.MaxPlusSize点击查看代码voidsolve(){intn;cin>>n;intimax1=0,imax2=0;for(inti=1;i<=n;i++){intx;cin>>x;if(i%2)imax1=max(imax1,x);elseimax2=max(imax2,x);}if(!n%2)cout......
  • SketchUp Pro 2024 for Mac 3D建模 草图设计大师软件安装【保姆级教程,简单小白轻松上
    Mac分享吧文章目录SketchUpPro3D建模草图设计大师软件安装完成,软件打开效果一、Mac中安装SketchUpPro3D建模草图设计大师软件——v241️⃣:下载软件2️⃣:安装软件,将安装包从左侧拖入右侧文件夹中3️⃣:应用程序,打开安装的应用软件文件夹,运行SketchUp.app4️⃣:任选示例模型,......
  • OmniPlan Pro for Mac 项目管理流程软件安装教程【保姆级教程,简单小白轻松上手】
    Mac分享吧文章目录OmniPlanPro项目管理流程软件安装完成,软件打开效果一、Mac中安装OmniPlanPro项目管理流程软件——v4.91️⃣:下载软件2️⃣:安装软件,将安装包从左侧拖入右侧文件夹中,并等待安装完成3️⃣:运行安装好的软件,显示下图后,Command+Q键退出软件4️⃣:打开下图软件,根......
  • 仿 Mac 个人网站开发 |项目复盘
    一、前言1.1灵感来源早年有幸看到国外大佬做的一个基于Web的WindowsXP桌面娱乐系统,那时刚好有搭建一个个人博客的想法,所以就想是否可以基于WEB实现一个仿MacUI的个人博客,以应用的形式来展示博客各个功能!1.2相关链接前端开源代码:https://github.c......
  • SHA256加密-前端 中 HMAC-SHA256的base64加密 和 md5加密
    1、 HMAC-SHA256的base64加密首先npminstallcrypto-js--save项目中使用12345import CryptoJSfrom 'crypto-js';  consthash=CryptoJS.HmacSHA256(zhuan, 'secret');//第一个参数为转换的字符串第二个参数有很多种可能看需要转换的格式consthas......
  • Codeforces Round 972 (Div. 2)题解记录
    A.SimplePalindromeaeiou,如果这里后面+u则会多出2,+o则会多3,通过分析加相同的字母比加之前存在的不同字母赚发现同一个太多了,又会增太大,遂平均分配,使增多幅度上升的缓慢#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;llgcd(llx,lly){ if(y==0) r......
  • vulnhub-Machine_Matrix靶机的测试报告
    目录一、测试环境1、系统环境2、使用工具/软件二、测试目的三、操作过程1、信息搜集2、Getshell3、提权四、结论一、测试环境1、系统环境渗透机:kali2021.1(192.168.202.134)靶 机:Linuxporteus4.16.3-porteus2、使用工具/软件Kali:arp-scan(主机探测)、nma......
  • Codeforces Round 977 (Div. 2)(B-C2)
    B:感觉最近几题都用了这种继承的思想。然后就把n方转化为一个递推的问题。我写了一个跟题解不同的做法是取同余也挺巧妙的。#include<bits/stdc++.h>usingnamespacestd;#defineCIconstint&#defineintlonglongconstintmaxn=2e5+10;inta[maxn],vis[maxn],cnt[max......
  • cf2009 Codeforces Round 971 (Div. 4)
    A.Minimize!签到题。计算\((c-a)+(b-c)\)的最小值,其实值固定的,等于\(b-a\)。inta,b;voidsolve(){cin>>a>>b;cout<<b-a<<endl;}B.Osu!mania签到题。给定一个4k下落式的网格,求#下落顺序。直接数组记录就好了。intn;constintN=500;chars[......