随笔分类 - 线段树
摘要:题目链接: "Click here" Solution: 看起来是贪心,其实不然。。。 我们定义$f[i]$表示 仅 覆盖$1\sim i$所需要的最小代价,那么对$i$为0的点来说,易得$f[i]=min(f[i],f[i 1]+i)$ 考虑当$i$为1时怎么办,当$i$为1时,根据定义,我们不转
阅读全文
摘要:题面: ![][1] 大致题意: 有两种操作:1.给你一条一次函数 2.给你一个x,让你求所有函数中最大的y 现在有n个操作,要求你对每一个操作2输出最大的y值/100的结果 Solution: 这道题可以让我们很好的了解李超线段树 什么是李超线段树呢? 李超线段树是用来解决二维直角坐标系上给定直线
阅读全文
摘要:题面: 画一些颜色段在一行上,一些较早的颜色就会被后来的颜色覆盖了。 你的任务就是要数出你随后能看到的不同颜色的段的数目。 Input: 每组测试数据第一行只有一个整数n, 1 define N 8001 define ls (q=L&&r 1; if(mid =L)change(l,mid,ls,
阅读全文
摘要:题面: 在数轴上进行一系列操作。每次操作有两种类型,一种是在线段[a,b]上涂上颜色,另一种将[a,b]上的颜色擦去。 问经过一系列的操作后,有多少条单位线段[k,k+1]被涂上了颜色 Input: 第一行两个整数n,m,表示数轴从0到n,操作数为m 接下来m行,每行三个整数op,a,b,op=0时
阅读全文
摘要:题面: Wind设计了很多机器人。但是它们都认为自己是最强的,于是,一场比赛开始了……机器人们都想知道谁是最敏捷的,于是它们进行了如下一个比赛。首先,他们面前会有一排共n个数,它们比赛看谁能最先把每连续k个数中最大和最小值写下来,当然,这些机器人运算速度都很,它们比赛的是谁写得快。但是Wind也想知
阅读全文
摘要:题面: 给定一数列,规定有两种操作,一是修改某个元素,二是求区间的连续和。 Input: 输入数据第一行包含两个正整数n,m(n using namespace std; int n,m,a[1000001]; struct sgt{ int tree[500001]; void build(int
阅读全文

浙公网安备 33010602011771号