#题解#洛谷P1314#二分#前缀和#

news/2025/11/12 21:01:44/文章来源:https://www.cnblogs.com/Ahui2667d/p/19215419

[传送门](P1314 [NOIP 2011 提高组] 聪明的质监员 - 洛谷)

分析

1.W变大,则要求条件更严格,则sigema(y)不增,具有单调性,考虑二分查找W。O(log w)

2.对于每一个W,可以处理前缀和求特征值。O(n+m)

3.总时间复杂度O(log w * (n+m) )

代码实现

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mid ((r+l)>>1)
const int N = 2 * 1e5+10;
ll s;
int n, m, W;
ll w[N], v[N], sum[N], is[N];
int L[N], R[N];
void  doit(int We)
{memset(sum, 0, sizeof(sum));memset(is, 0, sizeof(sum));for (int i = 1; i <= n; i++){int tmp = (w[i] >= We);sum[i] = sum[i - 1] + tmp * v[i];is[i] = is[i - 1] + tmp;}
}
ll Y()
{ll y = 0;for (int i = 1; i <= m; i++)y += (sum[R[i]] - sum[L[i] - 1]) * (is[R[i]] - is[L[i] - 1]);return y;
}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n >> m >> s;int maxw = -1, minw = 1e9;for (int i = 1; i <= n; i++)cin >> w[i] >> v[i], maxw = max((long long)maxw, w[i]), minw = min((long long)minw, w[i]);for (int i = 1; i <= m; i++)cin >> L[i] >> R[i];ll ans = 1e15;ll yy;int l = minw - 1, r = maxw + 1;while (r >= l){doit(mid);yy = Y();if (yy > s)l = mid + 1, ans = min(ans, abs(yy - s));else if (yy < s)r = mid, ans = min(ans, abs(yy - s));else{cout << 0;return 0;}if (r == l){cout << ans;return 0;}}ans = min(ans, abs(yy - s));cout << ans;return 0;
}

Trick/错误总结

  1. 注意W的取值范围应该是maxw+1到minw-1之间 不要把范围搞小了

  2. 注意mid是下取整,故二分查找时若更新l,应令l=mid+1,否则无限循环。

  3. l==r的判断放到最后

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

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

相关文章

Python 实现对遥感影像根据DN值上色

Python 实现对遥感影像根据DN值上色import os import re import glob import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import rasterio from rasterio.plot import plotting_extent fr…

《团队作业2》需求规格说明书

团队作业2-《需求规格说明书》 随笔:星瀚餐递——校园轻量外卖平台作业维度 具体内容所属课程 https://edu.cnblogs.com/campus/gdgy/Class12Grade23ComputerScience作业要求 https://edu.cnblogs.com/campus/gdgy/Cl…

【免费】MySQL自动化运维工具,一键生成WORD和EXCEL

【免费】MySQL自动化运维工具,一键生成WORD和EXCEL

实用指南:轻量化 + 绿色部署的日志监控系统log-monitor设计思路(一)

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

深入理解C++智能指针:掌握RAII与内存安全的利器 - 详解

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

使用rpmbuild将源代码制成rpm包

1 说明 因centos停止支持,需要将一些应用软件迁移到OpenEuler上。原本在centos上只需要直接安装官网提供的预编译rpm包即可,现在没有了现成的安装包,只能从源代码自行编译。如果只是少数机器,逐台编译尚可忍耐,对…

随机链表的复制-leetcode

题目描述 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设…

Linux下的花式「隔空」文件传输魔法

引言 在日常运维、开发协作或者只是在自己的多台设备间同步文件时,你是否厌倦了繁琐的步骤:上传到云盘再下载,或者寻找一个U盘?其实,在 Linux 强大的命令行世界里,我们有多种轻量级、高效的“隔空”传输方案,无…

【LVGL】进度条部件

引言 进度条部件(lv_bar)进度条部件相关 api 函数示例程序 这里建议设置模式为LV_BAR_MODE_RANGE,否则在新版本中,默认模式不可用于设置起始值,容易出问题。 void my_gui(void) {lv_obj_t *bar = lv_bar_create(l…

OpenEuler 22.03 安装zabbix-agent(源代码编译及自制rpm包)

一、说明 1.1 背景 由于centos停止支持的缘故,被迫从centos转换到了OpenEuler-22.03。最初抱着偷懒的想法,尝试直接安装centos7版本的zabbix-agent的rpm包,但是由于openssl版本过高导致无法安装。低版本的openssl本…

pq使用体验和改进建议

1. 首次使用体验 (Onboarding) o 界面板块过多,没有突出核心“答题板块”。 o 应该是团队陷入了“知识的诅咒” o 希望突出一个答题界面,除此以外没有任何板块2. 效率与反馈 (行为层) o 缺少一些滑动操作,只能点。 …

Vue插值表达式

Vue插值表达式 插值表达式的语法形式 {{表达式}}1.作用:利用表达式进行插值,渲染到页面中 表达式:是有数据的代码,js引擎能识别并且计算出结果的 2.注意事项: (1)使用的数据必须存在(2)支持的是表达式,而非语…

设备坏了才修,能不能提前预测?

设备坏了才修,能不能提前预测? 制造业里有一句很扎心的话: 设备不坏不修,一坏修不完。 这些年,我走访了很多制造业公司,工厂,很多工厂的设备管理状态是这样的:平时没人管,坏了大家全跑来修; 点检表写了签字,…

好题集 (1) - LG P3978 [TJOI2015] 概率论

题目传送门。 设 \(f_n\) 表示有 \(n\) 个结点的二叉树的总数,\(g_n\) 表示在有 \(n\) 个结点的 \(f_n\) 棵二叉树中叶子的总数。那么答案就应为\(\frac{g_n}{f_n}\)。考虑怎么求。打表(link)发现 \(g_n=n\cdot f_{…

部署MQTT Broker - Mosquitto - -YADA

MQTT协议 MQTT 协议全称是 Message Queuing Telemetry Transport,翻译过来就是消息队列遥测传输协议,它是物联网常用的应用层协议,运行在 TCP/IP 中的应用层中,依赖 TCP 协议,它具有非常高的可靠性,同时它是 基于…

useActionState 阻止表单重置

前言 useActionState是react19新出的api,提供的非受控表单钩子。 但是他有一个缺点,就是每次提交表单后会重置表单状态! 官方美其名曰“遵守原生表现”,但是网上讨伐声音,就足以证明垃圾! https://github.com/fa…

路由基础

1. 路由获取方式1. 直连路由。由设备自动生成指向本地直连网络 2. 静态路由。由网络管理员手工配置的路由条目 3. 动态路由。路由器运行动态路由协议学习到的路由动态路由使用最多的协议 ospf isis2. 路由选择1. 最长掩…

UltraSearch(文件搜索神器) Pro v4.8.5.1185 多语便携版

简介 UltraSearch一款超快的文件搜索软件,数秒就可以在硬盘中帮您搜索出文件,比系统自带的快N倍。UltraSearch并不是通过建立索引或后台处理,它是通过查看NTFS分区的主文件表(MFT)来快速找到文件。类似的快速搜索…

idea链接database时报错:serverTimezone

1.报错:Server returns invalid timezone. Go to Advanced tab and set serverTimezone property manually. 2.设置时区 jdbc:mysql://localhost:3306/zcck?serverTimezone=UTC

题解:CF2117F Wildflower

树上计数,洛谷标签里有 Ad-hoc,其实我觉的没那么难,可能因为我太菜了只能做绿题的原因。CF2117F Wildflower 更洛谷的阅读体验 好题,爽! 思维题,爽! Ad-hoc,爽! 我做出来了,爽飞了! 思路 首先我们发现由于每…