![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ural
kryi
这个作者很懒,什么都没留下…
展开
-
Ural 1019. Line Painting
在0到10^9的线段上,一开始颜色全白,然后修改多次子区间颜色或黑或白。求最终状态下的白色最长区间。主要就是离散化,然后就直接用线段树了。刚刚开始学线段树,代码很挫。#include #include #include #include #include using namespace std;const int maxn=10010;int col[maxn],x[ma原创 2013-08-01 21:23:24 · 634 阅读 · 0 评论 -
Ural 1100. Final Standings
水题,把AC 的题目分类即可。#include#include#include #include #include #include #include #include #include #include using namespace std;#define eps 1e-7#define INF 0x3fffffff#define L(u) (u<<1)#de原创 2013-08-01 20:52:32 · 723 阅读 · 0 评论 -
Ural 1654. Cipher Message
删掉连续的相同两个字母,直到不存在两个连续且相同的字母。模拟一个栈即可。#include#include#include #include #include #include #include #include #include #include using namespace std;#define eps 1e-7#define INF 0x3ffffff原创 2013-08-01 20:55:53 · 550 阅读 · 0 评论 -
Ural 1306. Sequence Median
求一个数列的中位数,最多有250000个数。看了discuss才知道用优先队列,先压栈N/2+1个然后边压栈边弹栈。N为奇数就是栈里的弹一个,N为偶数就从栈里弹两个。#include#include#include#includeusing namespace std;priority_queue que;int main(){ //freopen("in","r原创 2013-08-01 22:01:59 · 712 阅读 · 0 评论 -
Ural 1037. Memory Management
看到网上有用堆做的,我是用线段树做的,根据noclyt的思想。把30000个内存建树,记录区间内最早到期的内存时间。当申请内存时,查询编号最小的空闲内存。当访问内存时,先查询内存块时候已经到期,否则更新内存块的到期时间。#include #include #include #include #include #include #include #include #i原创 2013-08-01 21:54:34 · 582 阅读 · 0 评论 -
Ural 1126. Magnetic Storms
题好难读,输出长度为k的区间内的峰值。单调队列的应用。单调队列的插入就是把一个元素加入,从队尾开始到比第一个他的大的元素位置之后,在之后的元素全部抛弃。删除就是从对头找到第一个满足可在队列中的元素作为对头。#include #include #include #include #include #include #include using namespace s原创 2013-08-01 21:46:51 · 670 阅读 · 0 评论 -
Ural 1090. In the Army Now
#include #include #include #include #include #include #include using namespace std;const int maxn=10010;int sum;int f[maxn*4];void Build(int n){ sum=0; n=n<<2; for(int i=0;i<=原创 2013-08-01 21:36:05 · 611 阅读 · 0 评论 -
Ural 1028. Stars
看树状数组课件的时候见到过 这个题,给出恒星的坐标,Y轴从小到大有序,那么按y轴的顺序修改树状数组的值,求1-x的区间和就是在恒星左下的恒星数。#include #include #include #include #include using namespace std;const int maxn=15010;const int maxm=32010;int num[max原创 2013-08-01 21:30:17 · 705 阅读 · 0 评论 -
Ural 1003. Parity
给出在一个区间内1的奇偶性,输出在第一次出现矛盾位置。个人感觉是一个比较难也比较好的并查集的题目,一开始并没有看出来,囧。把给出的区间转化为前开后闭区间,查询区间的短点是否为同一个祖先,若是,则判断奇偶性是否正确。若不在同一个区间把区间短点合并。注意两点:1.记录当前区间短点到最远祖先这段区间的奇偶性。2.合并的时候,是把要合并的区间端点的两个祖先合并。路径压缩的时候修改祖原创 2013-08-01 21:15:42 · 693 阅读 · 0 评论 -
Ural 1471 Tree
询问一棵树的任意两个节点的最短距离。裸的lca。#include#include#include#include#include#include#include#includeusing namespace std;const int maxn=500001;struct Node{int val,to,next;}node[2*maxn];int head[ma原创 2013-10-06 18:51:59 · 451 阅读 · 0 评论