个人心得:线段树就是将一段序列拆分为一个个单独的节点,不过每俩个节点又可以联系在一起,所以就能很好的结合,比如这一题, 每次插入的时候都将这一段区间的最大最小值更新,就能大大减少时间。 这个线段树建立是以数组的,根节点为0,后面每次都是父节点*2+1/2。 这题简单的教会了我如何创建线段树,以及一些 ...
分类:
其他好文 时间:
2017-08-09 16:55:30
阅读次数:
192
为什么这道题会被打上'LCT'的tag呢? 不管怎么说先膜LCT 如果没有过于鬼畜的艹作,查询子树有一个方法就是用数据结构维护dfs序 此题仅有单点修改,于是我们考虑用线段树维护dfs序 先以1为根dfs一次 修改->线段树单点修改 子树最小值->线段树区间查询 还有一个艹作:换根 先约定记号:[l ...
分类:
其他好文 时间:
2017-08-09 12:51:41
阅读次数:
132
4444: [Scoi2015]国旗计划 Description A国正在开展一项伟大的计划——国旗计划。这项计划的内容是边防战士手举国旗环绕边境线奔袭一圈。这 项计划需要多名边防战士以接力的形式共同完成,为此,国土安全局已经挑选了N名优秀的边防战上作为这 项计划的候选人。 A国幅员辽阔,边境线上设 ...
分类:
其他好文 时间:
2017-08-09 10:10:05
阅读次数:
147
【题目描述】: 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.求出某区间每一个数的和 【输入描述】: 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3或4个 ...
分类:
其他好文 时间:
2017-08-09 00:00:59
阅读次数:
315
难度区间:NOIP提高- 第一题 题意: 滚来滚去 Solution 刚开始写了O(n)的60分模拟,打了1h的状态表,结果写砸了只剩35分QAQ 对于30%的数据:O(n^2)模拟 对于60%的数据:O(1)求横向翻转,O(n)模拟向下翻转的情况 对于100%的数据:时间复杂度:O(1) 分类讨论 ...
分类:
其他好文 时间:
2017-08-08 23:12:15
阅读次数:
159
一个数是美丽的,当且仅当其可以被其所有的非0数位整除。求在区间[a,b]中有多少数是美丽的。 a,b<=10^18 这道题很明显是数位DP的分格,f[i][j][k][sta]表示前i个数,取值是否贴紧,前i个数的值%2520的值,前i个数的lcm(这里用离散化存),的方案数,答案就是count(b ...
分类:
其他好文 时间:
2017-08-08 23:10:30
阅读次数:
151
一、random的作用 random模块是一个跟取随机值相关的模块,主要用于类似抽奖、验证码等场景 二、常用方法 random.random():产生一个0-1之间的随机数 random.randint():产生一个指定范围的随机整数,这个范围是一个闭区间 random.choice():返回指定序 ...
分类:
编程语言 时间:
2017-08-08 20:04:17
阅读次数:
177
Description Input Output Sample Input Sample Output HINT 1 /* 2 线段树+并查集维护 3 线段树维护每列的信息 4 le 代表区间左端一列连通性的信息 5 ri 代表区间右端一列连通性的信息 6 w,b 分别代表白色连通块和黑色连通块的个 ...
分类:
其他好文 时间:
2017-08-08 19:50:00
阅读次数:
166
用快速排序的思想输出数组第k大的元素: 参考:http://blog.csdn.net/guangwen_lv/article/details/39674241 利用快速排序的特点:第一遍排序会确定一个数的位置,这个数左边都比它大,右边都比他小(降序),当左边区间大于K时,说明我们求的第K大数在左边 ...
分类:
编程语言 时间:
2017-08-08 19:33:26
阅读次数:
217
Description 小Yuuka遇到了一个题目:有一个序列a_1,a_2,?,a_n,q次操作,每次把一个区间内的数改成区间内的最大值,问最后每个数是多少。小Yuuka很快地就使用了线段树解决了这个问题。于是充满智慧的小Yuuka想,如果操作是随机的,即在这q次操作中每次等概率随机地选择一个区间 ...
分类:
其他好文 时间:
2017-08-08 15:32:39
阅读次数:
170