当前位置: 首页 > news >正文

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

[传送门](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.rkmt.cn/news/47876.html

相关文章:

  • 《团队作业2》需求规格说明书
  • 深入理解C++智能指针:掌握RAII与内存安全的利器 - 详解
  • Linux下的花式「隔空」文件传输魔法
  • OpenEuler 22.03 安装zabbix-agent(源代码编译及自制rpm包)
  • pq使用体验和改进建议
  • 设备坏了才修,能不能提前预测?
  • UltraSearch(文件搜索神器) Pro v4.8.5.1185 多语便携版
  • B4093 [CSP-X2021 山东] 发送快递
  • 从零上手 Rokid JSAR:打造专属 AR 桌面交互式 3D魔方,开启空间创建之旅
  • CF468C Hack it!
  • 深入解析:FT62FC3X 8位MCU单片机选型表,详细解析FT62FC31A/32A/33A/35A/3FA
  • 压迫
  • gowin ide linux安装教程
  • pythontip 按条件过滤字典
  • 如何把华为mate 60手机备份到移动硬盘
  • Vue实例学习
  • 2.2 语言处理程序基础
  • MATLAB 数据可视化教程:从基础到进阶
  • 37
  • [集训队互测 2025] 火花 做题记录
  • 返璞归真,因为自指,所以自洽
  • 2025大桶/桶装/纯净/瓶装/灌装水设备推荐榜:青州市路得自动化五星领跑 四大品牌赋能水企高效生产
  • 2025年艺考文化课优选机构:聚焦艺考文化课机构/艺考文化课培训山东艺考文化课机构/封闭集训与精准提分核心竞争力
  • Dynamics 365 Field Service跨站脚本漏洞分析
  • 团队作业2——需求规格说明书
  • 实用指南:Java优选算法——位运算
  • 英语_阅读_Postman_待读
  • 英语_句子摘抄
  • [USACO18JAN] G/S 题解
  • 完整教程:对于环形链表、环形链表 II、随机链表的复制题目的解析