stl set
2022/2/6 23:20:54
本文主要是介绍stl set,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
P2234 [HNOI2002]营业额统计
#include <bits/stdc++.h> using namespace std; int n, x, ans; set<int> s; set<int>::iterator iter, before; int main() { scanf("%d", &n); scanf("%d", &x); s.insert(x); ans+=x; for(int i=2; i<=n; ++i){ scanf("%d", &x); //找到第一个大于等于x的位置 iter=s.lower_bound(x); //x在里面是最小的 if(iter==s.begin()){ ans+=abs(*iter-x); } else{ before=iter; before--; ans+=min(abs(x-*iter), abs(x-*before)); } s.insert(x); } printf("%d", ans); return 0; }
或者
#include <bits/stdc++.h> using namespace std; int n, x, ans; set<int> s; set<int>::iterator iter, before; int main() { scanf("%d", &n); s.insert(1e9); s.insert(-1e9); for(int i=1; i<=n; ++i){ scanf("%d", &x); if(i==1){ ans+=x; } else{ iter=s.lower_bound(x); before=iter; before--; ans+=min(abs(x-*iter), abs(x-*before)); } s.insert(x); } printf("%d", ans); return 0; }
这篇关于stl set的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南