bzoj1208(set或splay,改天用它练splay的模板)
来源:互联网 发布:中电大数据 张振兴 编辑:程序博客网 时间:2024/06/06 03:45
就是一个set的运用,同时熟悉了一下set的用法
这里介绍一下lower_bound
lowe_bound在有序数组中二分查找,大于等于它最小的数的位置1
通过--来找小于它的第一个数
做这道题时也意识到:做完觉得对,肯定会有bug的,要以一种思考本质的方式审视自己的思路
很有可能存在小的问题所以做完不要忙着交,检查检查再检查,让它成为习惯,一致于考场的发挥以免失误
#include<cstdio>#include<cstring>#include<algorithm>#include<set>#define mod 1000000using namespace std;const int inf=0x3f3f3f3f;set<int> s;set<int>::iterator it=s.begin();//iterator的用法好重要int n;int main(){scanf("%d",&n);int x,y,k=0,l,r;int ans=0;s.insert(inf);s.insert(-inf);//通过加无穷大无穷小来使运算更方便for (int i=1;i<=n;i++){scanf("%d%d",&x,&y);if (s.size()==2) k=x;if (x==k)s.insert(y);else{r=*s.lower_bound(y);//lower_bound后继l=*--s.lower_bound(y);//通过--来找前驱if (y-l<=r-y){ ans=(y-l+ans)%mod;s.erase(l);//erase删除}else ans=(r-y+ans)%mod,s.erase(r);} }printf("%d",ans);return 0; }
0 0
- bzoj1208(set或splay,改天用它练splay的模板)
- bzoj1208(splay tree)
- bzoj1208 splay伸展树
- 【splay】BZOJ1208宠物收养所
- bzoj1208.宠物收养所(splay)
- Duan2baka的Splay模板!
- SPLAY模板
- (模板)splay
- splay模板
- splay 模板
- splay 模板
- 【模板】splay
- splay模板
- splay模板
- Splay模板
- Splay模板
- splay 模板
- Splay模板
- Linux发展史
- 数组中超过出现次数超过一半的数字以及超过三分之一的两个数字,超过四分之一的三个数字
- vim使用总结
- [WorldWide_D幻想乡♂模拟赛][JZOJ4599]西行妖
- PE文件详解之块表
- bzoj1208(set或splay,改天用它练splay的模板)
- 利用 find 和 crontab 命令清理过期文件
- centos7 安装 samba
- markdown表格内如何进行换行?
- 直方图均衡化
- PE文件详解之区块表
- Linux网络编程头文件
- 通过IP找到城市的API接口
- R-CNN: Rich feature hierarchies for accurate object detection and semantic segmentation