——————STL——————
文章平均质量分 60
everlasting__
'-'
展开
-
bzoj 1293: [SCOI2009]生日礼物 STL
→题目链接← 对于每个彩珠我们保存它的下标和颜色,然后按下标排序 之后用set存对于每个颜色我们选中的彩珠的下标 如果insert的时候碰到set的size为0,说明这是一个新的颜色,我们就令difcol++ 每次使右端点向右移动1 然后如果左端点的彩珠的颜色的set的size大于1,说明这个彩珠我们不需要了,就从set中erase掉 不用考虑相同坐标中的重复彩珠,因为对于一个原创 2017-08-18 15:14:48 · 263 阅读 · 0 评论 -
bzoj 3196: Tyvj 1730 二逼平衡树 树套树
→题目链接← 【想说的话】 不知道为什么这么晚了突然就想写了... 这是我第一颗树套树了,其实算半颗?有一半用pb_ds水的=.= 但是写出来还是很有成就感的...但是也同时也非常的虚平衡树... 【题解】 线段树套平衡树 用pbds搞得平衡树,这种东西需要编译器版本好高...bzoj上null_type还不行,必须换成旧版的null_mapped_type (如果原创 2017-10-21 00:11:00 · 347 阅读 · 0 评论 -
bzoj 3673: 可持久化并查集 by zky
→题目链接← 【想说的话】 rope大法好!!!!! 【题解】 用rope来实现可持久化并查集 rp[i]->at(x) 访问下标为x的元素的值 rp[i]->replace(pos,x) 将下标为pos的元素的值更改为x rp[i]=new rope(*rp[y])原创 2017-12-01 20:03:21 · 297 阅读 · 0 评论 -
bzoj 3674: 可持久化并查集加强版
→题目链接← 【想说的话】 rope大法好*2 【题解】 和我的上一篇没有什么区别 需要注意的是 xor 和 MLE 问题 MLE的解决办法是路径压缩时如果可以不更新就不更新 我第一次知道这种东西可以这么缩内存.... 【代码】 #include #include #define MAXN 200020 using namespace std; usi原创 2017-12-01 22:34:20 · 283 阅读 · 0 评论 -
bzoj 1216: [HNOI2003]操作系统
→题目链接← 【想说的话】 听说03年不让用stl... 所以就会产生这样的题... 【题解】 用优先队列按照题意模拟就好了 【代码】 #include using namespace std; struct node{ int num,ti,t,x; friend bool operator < (node a,node b){ if(a.x==原创 2017-10-22 17:14:30 · 276 阅读 · 0 评论 -
bzoj 1208: [HNOI2004]宠物收养所 stl
→题目链接← 【想说的话】 又是一道stl可以水过的好题 本来有输入输出优化的...但是为了缩代码,删掉了 【题解】 不用管是宠物还是人来了,如果另一方有剩余,那就直接找最接近的加进答案,否则把他放进这一方的set 咋找set搞一搞就好了,代码应该挺可看的-___- 【代码】 #include #define ll long long #define mo原创 2017-10-20 10:58:09 · 328 阅读 · 0 评论 -
bzoj 4781: [Usaco2017 Open]Paired Up
→题目链接← 每次把最大的牛与最小的牛合并,最终结果一定是最大值最小的 所以我们用优先队列维护一个大根堆,再维护一个小根堆,每次合并更新下答案就好 代码: #include #include #include #include #include #include using namespace std; struct node1{ int sum,val,num;原创 2017-08-30 09:25:56 · 376 阅读 · 0 评论 -
bzoj 3401: [Usaco2009 Mar]Look Up 仰望
→题目链接← 以高度为第一关键字,从大到小 以序号为第二关键字,从小到大 排序 然后从头开始扫,每次找到后继就是第一个高于他的,然后把他的编号插到set里 代码: #include #include #include #include using namespace std; struct node{ int x,num; friend bool operato原创 2017-09-13 14:47:14 · 282 阅读 · 0 评论 -
bzoj 3358: [Usaco2004 Jan]洪水
→题目链接← 保存每个高度有多少个 如果目前剩的水的体积大于目前最矮的高度的数量,那么会使水面高度整体上升1,然后把目前的高度+1 然后再判断下以前是否已经有了+1后的高度,如果有把这两堆合并,再推进优先队列 直到最终高度后,只要初始高度小于等于最终高度,都加进ans 最后输出 最终高度 和 ans 代码: #include #include #include #in原创 2017-08-22 16:25:59 · 350 阅读 · 0 评论 -
bzoj 2761: [JLOI2011]不重复数字
→题目链接← 新博客连接:https://www.everlasting.wang/archives/208 【想说的话】 水水水水水水水水水水水水水水水 水水水水水水水水水水水水水水水水水 水水水水水水水水水水水水水水水 水水水水水水水水水水水水水水水水水水水水 【题解】 直接用map保存某个数是否出现过 注意:不能一边扫一边输出,末尾有空格原创 2017-12-20 19:44:06 · 272 阅读 · 0 评论