HDU 4288 Coder(vector + upper_bound, lower_bound)
来源:互联网 发布:2017淘宝打折怎么设置 编辑:程序博客网 时间:2024/05/29 09:26
题目链接:HDU 4288 Coder
【题目大意】
给你一个空set ,有三种操作,
add x set中加入一个元素x (题目保证set中之前没有x)
del x 删除元素 x (题目保证set中一定有x)
sum (set 中元素 为 a1 a2 a3...... an 求所有下标为i , 且 i%5==3 的 元素的和)
你要确保输入的元素在set中是有序的。
乍一看直接用set做了, 然而数据规模有 1e5,超时。
比赛的时候偶然听到有人说用vector , 才来了灵感,用lower_bound找到元素的位置再进行插入删除操作。当然网上说直接用数组暴力,线段树做也可以。
【源代码】
#include <iostream>#include <sstream>#include <cstring>#include <algorithm>#include <cstdio>#include <vector>#include <set>using namespace std;vector<int> a;int main(){int n, v, pos;long long ans; //注意要用longlong char cmd[10];while(scanf("%d", &n) != EOF){a.clear();while(n--){scanf("%s", cmd);if(!strcmp(cmd, "add")){scanf("%d", &v);if(a.empty())a.push_back(v);else{a.insert(upper_bound(a.begin(),a.end(),v),v); //找到元素应该插入的位置。}}else if(!strcmp(cmd, "del")){scanf("%d", &v);a.erase(lower_bound(a.begin(),a.end(),v)); //找到需要删除元素所在的位置}else{ans = 0;if(a.size() == 0){printf("0\n");}else{for(unsigned i = 0; 5*i+2 < a.size(); i++){ans += a[5*i+2];}printf("%lld\n",ans);}}}}return 0;}
0 0
- HDU 4288 Coder(vector + upper_bound, lower_bound)
- HDU 4288 Coder(模拟) 附:upper_bound与lower_bound的比较
- hdu 4288 Coder(线段树+离散化,lower_bound&&upper_bound的运用)
- hdu 4288(lower_bound&&upper_bound的运用)
- hdu 4288 Coder (vector)
- lower_bound()、upper_bound()
- lower_bound upper_bound
- lower_bound() + upper_bound()
- lower_bound,upper_bound
- lower_bound & upper_bound
- lower_bound & upper_bound
- lower_bound & upper_bound
- lower_bound && upper_bound
- hdu (4268)贪心muliset的upper_bound和lower_bound
- hdu 4302 map练习中 ,lower_bound()和upper_bound()
- HDU 4585(Shaolin-Treap的lower_bound&upper_bound操作)
- STL_Algorithm: lower_bound, upper_bound, equal_range
- upper_bound()与lower_bound()使用方法
- 浅谈GCD
- Application应用共享数据
- Android基本控件RadioGroup和RadioButton学习
- matlab BPSK调制方式代码实现
- java-8大基本类型
- HDU 4288 Coder(vector + upper_bound, lower_bound)
- 如何在 Swift 中优雅地处理 JSON
- 移植APM代码之PID调节
- hdu1532(最大流裸题)
- 腾讯面试(二)
- 刷LeetCode感受
- Cmake的介绍和使用 Cmake实践
- spring事务注解
- CCF 201312-5 I’m stuck!(BFS)