博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ 1588】 [HNOI2002]营业额统计
阅读量:5146 次
发布时间:2019-06-13

本文共 962 字,大约阅读时间需要 3 分钟。

【链接】

【题意】

在这里输入题意

【题解】

每天的最小波动值指的是和之前所有天的差值的绝对值中的最小值。

用set.的lower_bound函数。

每次找和他差值最小的数字就好。
(不要用lower_bound(myset.begin(),myset.end(),x)
这个比较慢
而应该用myset.lower_bound(x)
就能ac了

【代码】

#include 
#include
#include
#include
using namespace std;int n;long long ans = 0;set
myset;int main(){ //freopen("D:\\rush.txt","r",stdin); scanf("%d",&n); for (int i = 1;i <= n;i++){ int x; scanf("%d",&x); if (i==1) ans = x;else{ int temp = -1; set
::iterator pos = myset.lower_bound(x); int temp1 = (*pos); temp1 = abs(temp1-x); if (pos!=myset.end()) temp = temp1; if (pos!=myset.begin()){ pos--; temp1 = (*pos); temp1 = abs(temp1-x); if (temp==-1) temp = temp1; else temp = min(temp1,temp); } ans+=temp; } myset.insert(x); } printf("%lld\n",ans); return 0;}

转载于:https://www.cnblogs.com/AWCXV/p/8661964.html

你可能感兴趣的文章
Java NIO系列教程(九) ServerSocketChannel
查看>>
awk变量
查看>>
mysql_对于DQL 的简单举例
查看>>
postgis几何操作函数集
查看>>
js用blob处理ajax请求的流文件
查看>>
ACM题目————还是畅通工程
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>
35. Search Insert Position(C++)
查看>>
ubuntu 卡在登陆界面无法进入桌面,但是可以进入命令行界面
查看>>
python_day1
查看>>
【转】vim中多标签和多窗口的使用
查看>>
[毕业生的商业软件开发之路]C#异常处理
查看>>
chrome 禁止自动更新
查看>>
一些php文件函数
查看>>
std::min error C2059: 语法错误:“::” 的解决方法
查看>>
Opencv保存摄像头视频&&各种编码器下视频文件占用空间对比
查看>>
「图形学」直线扫描——Bresenham算法改进了中点Bresenham算法?
查看>>
jQuery 给div绑定单击事件
查看>>
Exceptionless 生产部署笔记
查看>>
有关快速幂取模
查看>>