![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 85
Saramanda
sjtu qys
展开
-
[题解]bzoj4719 NOIP2016天天爱跑步
Description小c同学认为跑步非常有趣,于是决定制作一款叫做《天天爱跑步》的游戏。?天天爱跑步?是一个养成类游戏,需要玩家每天按时上线,完成打卡任务。这个游戏的地图可以看作一一棵包含 N个结点和N-1 条边的树, 每条边连接两个结点,且任意两个结点存在一条路径互相可达。树上结点编号为从1到N的连续正整数。现在有个玩家,第个玩家的起点为Si ,终点为Ti 。每天打卡任务开始时,所有玩家在第0原创 2017-08-15 08:27:51 · 807 阅读 · 0 评论 -
[题解]bzoj1588 HNOI2002 营业额统计
Description营业额统计 Tiger最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger拿出了公司的账本,账本上记录了公司成立以来每天的营业额。分析营业情况是一项相当复杂的工作。由于节假日,大减价或者是其他情况的时候,营业额会出现一定的波动,当然一定的波动是能够接受的,但是在某些时候营业额突变得很高或是很低,这就证明公司此时的经营状况原创 2017-08-18 09:22:08 · 865 阅读 · 0 评论 -
[题解]bzoj1691 Usaco2007Dec 挑剔的美食家
Description与很多奶牛一样,Farmer John那群养尊处优的奶牛们对食物越来越挑剔,随便拿堆草就能打发她们午饭的日子自然是一去不返了。现在,Farmer John不得不去牧草专供商那里购买大量美味多汁的牧草,来满足他那N(1 <= N <= 100,000)头挑剔的奶牛。 所有奶牛都对FJ提出了她对牧草的要求:第i头奶牛要求她的食物每份的价钱不低于A_i(1 <= A_i <= 1,0原创 2017-08-18 09:17:34 · 828 阅读 · 0 评论 -
[题解]bzoj2243 SDOI2011 染色
Description给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。Input第一行包含2个整数n和m,分别表示节点数和操作数; 第二行包含n个正整数表示n个节点的初始颜色原创 2017-08-18 08:56:48 · 845 阅读 · 0 评论 -
[题解]bzoj4034 HAOI2015 树上操作
Description有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。Input第一行包含两个整数 N, M 。表示点数和操作数。接下来一行 N 个整数,表示树中节点的初始权值。接原创 2017-08-18 09:08:12 · 744 阅读 · 0 评论 -
[题解]hdu1828 Picture
DescriptionA number of rectangular posters, photographs and other pictures of the same shape are pasted on a wall. Their sides are all vertical or horizontal. Each rectangle can be partially or totally原创 2017-08-17 10:54:39 · 684 阅读 · 0 评论 -
[题解]hdu1255 覆盖的面积
Description给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. Input输入数据的第一行是一个正整数T(1<=T<=100),代表测试数据的数量.每个测试数据的第一行是一个正整数N(1<=N<=1000),代表矩形的数量,然后是N行数据,每一行包含四个浮点数,代表平面上的一个矩形的左上角坐标和右下角坐标,矩形的上下边和X轴平行,左右边和Y轴平行.坐标的范围从0到100000原创 2017-08-17 10:48:21 · 799 阅读 · 0 评论 -
[题解]hdu1542 Atlantis
DescriptionThere are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps des原创 2017-08-17 10:44:06 · 710 阅读 · 0 评论 -
[题解]bzoj3813 奇数国
Description在一片美丽的大陆上有100000个国家,记为1到100000。这里经济发达,有数不尽的账房,并且每个国家有一个银行。某大公司的领袖在这100000个银行开户时都存了3大洋,他惜财如命,因此会不时地派小弟GFS清点一些银行的存款或者让GFS改变某个银行的存款。该村子在财产上的求和运算等同于我们的乘法运算,也就是说领袖开户时的存款总和为300000。这里发行的软妹面额是最小的60个原创 2017-08-17 10:27:58 · 719 阅读 · 0 评论 -
[题解]bzoj1056/1862 Zjoi2006 GameZ游戏排名系统
DescriptionGameZ为他们最新推出的游戏开通了一个网站。世界各地的玩家都可以将自己的游戏得分上传到网站上。这样就可以看到自己在世界上的排名。得分越高,排名就越靠前。当两个玩家的名次相同时,先上传记录者优先。由于新游戏的火爆,网站服务器已经难堪重负。为此GameZ雇用了你来帮他们重新开发一套新的核心。排名系统通常要应付三种请求:上传一条新的得分记录、查询某个玩家的当前排名以及返回某个区段内原创 2017-08-18 09:28:59 · 708 阅读 · 0 评论 -
[题解]POI2015 Kinoman
Description共有m部电影,编号为1~m,第i部电影的好看值为w[i]。在n天之中(从1~n编号)每天会放映一部电影,第i天放映的是第f[i]部。你可以选择l,r(1<=l<=r<=n),并观看第l,l+1,…,r天内所有的电影。如果同一部电影你观看多于一次,你会感到无聊,于是无法获得这部电影的好看值。所以你希望最大化观看且仅观看过一次的电影的好看值的总和。 输入输出格式Input第一行两原创 2017-08-11 08:05:27 · 422 阅读 · 0 评论 -
[题解]codeforces498d Traffic Jams in the Land
题目:戳这里Solution线段树每个节点维护60个值,分别是走到该区间左端时时间为i时该区间所用的时间,因为题目中2<=y<=6,2到6的最小公倍数为60,则走过的时间在判断是否堵车是可以mod 60。代码:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=100010原创 2017-08-11 08:00:32 · 415 阅读 · 0 评论 -
[题解]uoj228 基础数据结构练习题
题目大意: 给定一个序列,要求支持区间加、区间开根号、区间求和操作。Solution线段树,我们可以像往常一样判断区间内的数是否都相等,如果相等就直接区间赋值,否则暴力递归下去。但是开根号还有一种特殊情况:3 4 3 4 3 4……开完根号1 2 1 2 1 2……同时加上2又变回了3 4 3 4 3 4……就给一个完全平方数和完全平方数减一的数开根号时得到的结果依然相差一,所以这样就会毫无疑问的原创 2017-08-15 08:03:57 · 620 阅读 · 0 评论 -
[题解]bzoj4869 SHOI2017相逢是问候
DescriptionInformatikverbindetdichundmich. 信息将你我连结。B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数。一共有m个操作,可以 分为两种:0 l r表示将第l个到第r个数(al,al+1,…,ar)中的每一个数ai替换为c^ai,即c的ai次方,其中c是 输入的一个常数,也就是执行赋值ai=c^ai1 l r求第l个到第r个数的和原创 2017-08-14 08:41:13 · 866 阅读 · 0 评论 -
[题解]codeforces444c DZY Loves Colors
题目:戳这里 题目大意: 给定一个序列,初始Ai=iA_i=i,区间赋值操作,定义i位置的元素的贡献为该位置元素每次改变的值的绝对值之和,多次询问区间内的元素贡献之和。Solution线段树,区间相同就统一修改,区间不同就暴力递归。注意本题的标记,每次加上新的标记时都会对答案产生贡献,不能只在覆盖标记上修改,还应该记录一下当前区间对答案的贡献作为标记下传。#include<cstdio>#in原创 2017-08-14 08:21:39 · 339 阅读 · 0 评论 -
[题解]bzoj1493 NOI2007项链工厂
DescriptionT公司是一家专门生产彩色珠子项链的公司,其生产的项链设计新颖、款式多样、价格适中,广受青年人的喜爱。最近T公司打算推出一款项链自助生产系统,使用该系统顾客可以自行设计心目中的美丽项链。该项链自助生产系统包括硬件系统与软件系统,软件系统与用户进行交互并控制硬件系统,硬件系统接受软件系统的命令生产指定的项链。该系统的硬件系统已经完成,而软件系统尚未开发,T公司的人找到了正在参加全国原创 2017-08-14 08:14:22 · 449 阅读 · 0 评论 -
[题解]bzoj4826 HNOI2017 影魔
Description影魔,奈文摩尔,据说有着一个诗人的灵魂。事实上,他吞噬的诗人灵魂早已成千上万。千百年来,他收集了各式各样的灵魂,包括诗人、牧师、帝王、乞丐、奴隶、罪人,当然,还有英雄。每一个灵魂,都有着自己的战斗力,而影魔,靠这些战斗力提升自己的攻击。奈文摩尔有 n 个灵魂,他们在影魔宽广的体内可以排成一排,从左至右标号 1 到 n。第 i个灵魂的战斗力为 k[i],灵魂们以点对的形式为影魔提原创 2017-08-17 09:43:36 · 726 阅读 · 0 评论 -
[题解]bzoj4825 HNOI2017单旋
DescriptionH 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构。伸展树(splay)是一种数据结构,因为代码好写,功能多,效率高,掌握这种数据结构成为了 H 国的必修技能。有一天,邪恶的“卡”带着他的邪恶的“常数”来企图毁灭 H 国。“卡”给 H 国的人洗脑说,splay 如果写成单旋的,将会更快。“卡”称“单旋 splay”为“spaly”。虽说他说的很没道理,但原创 2017-08-11 08:11:38 · 416 阅读 · 0 评论 -
[题解]bzoj3295 CQOI2011动态逆序对
Description对于序列A,它的逆序对数定义为满足iInput输入第一行包含两个整数n和m,即初始元素的个数和删除的元素个数。以下n行每行包含一个1到n之间的正整数,即初始排列。以下m行每行一个正整数,依次为每次删除的元素。Output输出包含m行,依次为删除每个元素之前,逆序对的个数。Sample Input5 4 1 5 3 4 2 5 1 4 2Sample Outpu原创 2017-08-11 08:19:05 · 318 阅读 · 0 评论 -
[题解]bzoj4592 SHOI2015脑洞治疗仪
Description曾经发明了自动刷题机的发明家SHTSC又公开了他的新发明:脑洞治疗仪–一种可以治疗他因为发明而日益增大的脑洞的神秘装置。 为了简单起见,我们将大脑视作一个01序列。1代表这个位置的脑组织正常工作,0代表这是一块脑洞。 1 0 1 0 0 0 1 1 1 0 脑洞治疗仪修补某一块脑洞的基本工作原理就是将另一块连续区域挖出,将其中正常工作的脑组织填补在这块脑洞中。 (所以脑原创 2017-08-11 07:53:44 · 450 阅读 · 0 评论 -
[题解]hdu5306 Gorgeous Sequence
DescriptionThere is a sequence a of length n. We use ai to denote the i-th element in this sequence. You should do the following three types of operations to this sequence.0 x y t: For every x≤i≤y, we原创 2017-08-17 10:18:09 · 458 阅读 · 0 评论 -
[题解]bzoj3878 AHOI2014 奇怪的计算器
Description【故事背景】 JYY有个奇怪的计算器,有一天这个计算器坏了,JYY希望你能帮助他写一个程序来模拟这个计算器的运算。 【问题描述】 JYY的计算器可以执行N条预设好的指令。每次JYY向计算器输入一个正整数X,计算器就会以X作为初始值,接着依次执行预设的N条指令,最后把最终得出的结果返回给JYY。 每一条指令可以是以下四种指令之一:(这里a表示一个正整数。) 1、+a:表原创 2017-08-17 10:08:03 · 554 阅读 · 0 评论 -
[题解]codeforces413e Maze 2D
题目:戳这里 题目大意: 给定一个2∗n2*n的地图,某些地方是障碍,只能上下左右走,多组询问两点直接的距离。n≤2∗105n\leq2*10^5Solution线段树维护区间左上到右上、左下到右上、左上到右下、左下到右下的最小距离和区间两端的四个格子是否是障碍即可。合并的时候稍微有点麻烦。代码:#include<cstdio>#include<cstring>#include<algori原创 2017-08-17 09:59:40 · 370 阅读 · 0 评论 -
[题解]bzoj1507(NOI2003)Editor
DescriptionInput输入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作。其中: 为了使输入文件便于阅读,Insert操作的字符串中可能会插入一些回车符,请忽略掉它们(如果难以理解这句话,可以参考样例)。 除了回车符之外,输入文件的所有字符的ASCII码都在闭区间[32, 126]内。且行尾没有空格。 这里我们有如下假定: MOVE操作不原创 2017-02-14 21:12:33 · 393 阅读 · 0 评论 -
[题解]bzoj1503(NOI2004)郁闷的出纳员
DescriptionOIER公司是一家大型专业化软件公司,有着数以万计的员工。作为一名出纳员,我的任务之一便是统计每位员工的工资。这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资。如果他心情好,就可能把每位员工的工资加上一个相同的量。反之,如果心情不好,就可能把他们的工资扣除一个相同的量。我真不知道除了调工资他还做什么其它事情。工资的频繁调整很让员工反感,原创 2017-02-15 10:34:04 · 847 阅读 · 0 评论 -
[题解]bzoj2049(SDOI2008)Cave 洞穴勘探
Description辉辉热衷于洞穴勘测。某天,他按照地图来到了一片被标记为JSZX的洞穴群地区。经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好两个洞穴。假如两个洞穴可以通过一条或者多条通道按一定顺序连接起来,那么这两个洞穴就是连通的,按顺序连接在一起的这些通道则被称之为这两个洞穴之间的一条路径。洞穴都十分坚固无法破坏,然而通道不太稳定原创 2017-02-15 15:24:37 · 1608 阅读 · 1 评论 -
[题解]bzoj2002(HNOI2010)Bounce 弹飞绵羊
Description某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步时,被弹几次后会被弹飞。为了使得游戏更原创 2017-02-15 15:33:35 · 764 阅读 · 0 评论 -
[题解]bzoj3669(NOI2014)魔法森林
Description为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士。魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M。初始时小E同学在号节点1,隐士则住在号节点N。小E需要通过这一片魔法森林,才能够拜访到隐士。魔法森林中居住了一些妖怪。每当有人经过一条边的时候,这条边上的妖怪就会对其发起攻击。幸运的是,在号节点住着两种守护精灵原创 2017-02-16 08:38:42 · 1101 阅读 · 0 评论 -
LCT(Link-Cut Tree)详解(蒟蒻自留地)
最近自学了LCT,发现网上的资料讲解不是很全面,像我这样的蒟蒻一时半会根本理解不了。我弄了很久总算是理解了LCT,打算总结一下LCT的基本操作,还请诸位神牛来找找茬。 如果你还没有接触过LCT,你可以先看一看这里:(看不懂没关系,先留个大概的印像)http://www.cnblogs.com/BLADEVIL/p/3510997.html看完之后我们知道,LCT和静态的树链剖分很像原创 2017-02-16 11:32:24 · 21171 阅读 · 5 评论 -
[题解]bzoj3600 没有人的算数
Solution就是线段树,最麻烦的地方就是比较两个数的大小。 我们可以想到给每个数映射到一个double值,但是double的精度有限,如果数太多就会挂掉。所以我们可以用平衡树维护。但是插入的时候还是有比较大小的问题。 注意到新数由原来的数生成,所以原来的数在平衡树中的大小可以用来进行比较。我们可以把每一个平衡树中的节点对应区间(l,r),然后他的左孩子对应(l,mid) ,原创 2017-07-11 10:40:17 · 333 阅读 · 0 评论 -
清华冬令营的某题
问题背景数字和数学规律主宰着这个世界。 机器的运转, 生命的消长, 宇宙的进程, 这些神秘而又美妙的过程无不可以用数学的语言展现出来。 这印证了一句古老的名言: “学好数理化,走遍天下都不怕。”问题描述学渣小R被大学的数学课程虐得生活不能自理,微积分的成绩曾是他在教室里上的课的最低分。然而他的某位陈姓室友却能轻松地在数学考试中得到满分。为了提升自己的数学课成绩,有一天晚上(在他睡觉的时候原创 2017-03-09 14:28:28 · 635 阅读 · 0 评论 -
[题解]NOI2005 维护数列
DescriptionInput输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目。第2行包含N个数字,描述初始时的数列。以下M行,每行一条命令,格式参见问题描述中的表格。任何时刻数列中最多含有500 000个数,数列中任何一个数字均在[-1 000, 1 000]内。插入的数字总数不超过4 000原创 2017-02-14 19:42:33 · 437 阅读 · 0 评论 -
[题解]bzoj1014 火星人prefix
Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字符 m a d a m i m a d a m 现在,火星人定义了一个函数LCQ(x, y),表示:该字符串中第x个字符开始的字串,与该字符串中第y个字符开始原创 2017-02-14 13:24:42 · 836 阅读 · 0 评论 -
[题解]bzoj4034 树上操作
Description有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。Input第一行包含两个整数 N, M 。表示点数和操作数。接下来一行 N 个整数,表示树中节点的初始权值。接原创 2017-07-12 17:21:54 · 306 阅读 · 0 评论 -
[题解]bzoj3600 没有人的算数
Description Solution%%%黄学长代码:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=500010;int n,m,mx[maxn<<2],pos[maxn];double val[maxn];template<typename T>inlin原创 2017-08-17 09:53:38 · 360 阅读 · 1 评论 -
[题解]bzoj4540 HNOI2016 序列
Description 给定长度为n的序列:a1,a2,…,an,记为a[1:n]。类似地,a[l:r](1≤l≤r≤N)是指序列:al,al+1,…,ar-1,ar。若1≤l≤s≤t≤r≤n,则称a[s:t]是a[l:r]的子序列。现在有q个询问,每个询问给定两个数l和r,1≤l≤r≤n,求a[l:r]的不同子序列的最小值之和。例如,给定序列5,2,4,1,3,询问给定的两个数为1和3,那么a[原创 2017-08-17 09:17:54 · 1240 阅读 · 0 评论 -
[题解]codeforces 438d The Child and Sequence
Description题目大意: 给出一个长度为 n 的序列AnA_n,有 m 个操作。 1. 给出 k, x,将AkA_k变为x; 2. 给出 l, r, x,将所有的Ai,l≤i≤rA_i, l \leq i \leq r全部变为Ai mod xA_i\ mod \ x; 3. 给出 l, r,询问∑ri=lAi\sum_{i=l}^r A_i 数据范围:n,m≤105n, m \le原创 2017-07-14 09:05:26 · 378 阅读 · 0 评论 -
[题解]hdu5634 Rikka with Phi
Description题目大意: 给出一个长度为 n 的序列AnA_n,有 m 个操作。 1. 给出 l, r,将所有的Ai,l≤i≤rA_i, l \leq i \leq r全部变为ϕ(Ai)\phi(A_i); 2. 给出 l, r, x,将所有的Ai,l≤i≤rA_i, l \leq i \leq r全部变为x; 3. 给出 l, r,询问∑ri=lAi\sum_{i=l}^r A_i原创 2017-07-13 13:11:21 · 333 阅读 · 0 评论 -
[题解]bzoj2957 楼房重建
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)原创 2017-07-13 12:56:24 · 414 阅读 · 0 评论 -
[题解]codeforces 339d Xenia and Bit Operations
Description题目大意: 给你2n2^n个数,更新其中的某个值,交替对这些数进行“或操作”和“异或操作”,每次得到最终的结果。Solution线段树模拟就好了,每次单点修改,每层节点用bool变量记录下是该进行“或操作”还是“异或操作”。 代码:#include<cstdio>#include<algorithm>using namespace std;template<typena原创 2017-07-13 12:05:06 · 414 阅读 · 0 评论