链表
WerKeyTom_FTD
我是一只来自中山纪念中学高三的oier,请多多指教
展开
-
数树数
题目大意及模型转换给定一棵由N个结点组成的树,现在有两种操作。1、将第i个结点权值改为x。2、询问第i个结点到第j个结点路径上的点有多少个权值为x。N<=100000,操作数Q<=200000。一开始第i个结点权值为v[i]。小感想2103年的题目真是鬼。。。这标题都不知道是什么鬼。。。什么可修改主席树又难打又难跳我还不会!比赛果断使用树上分块大水(分块大法好!)。题解说常熟大,加上我想到的实现方法原创 2015-08-14 21:38:10 · 1124 阅读 · 1 评论 -
[51nod月赛19A]区间的价值2
题目大意求所有区间and值与or值乘积的和瞎搞枚举左端点,我们需要知道and值与or值均相同的区间可以直接做出来。 这样划分最多60个区间,用链表顺序保存可能使得and值和or值改变的右端点即可。#include<cstdio> #include<algorithm> #define fo(i,a,b) for(i=a;i<=b;i++) #define fd(i,a,b) for(i=a;i>=原创 2016-10-31 16:49:20 · 470 阅读 · 0 评论 -
[51nod 1471]小S的兴趣
题目描述小S喜欢有趣的事。但是,每个人的兴趣都是独特的。小S热衷于自问自答。有一天,小S想出了一个问题。 有一个包含n个正整数的数组a和针对这个数组的几个问题。这些问题有两种类型: 1. 在数组下标l到r的部分上,将一个单元格循环移动到右端。即以下面方式重新分配数组上的元素。 a[l], a[l+1], …, a[r-1], a[r] → a[r], a[l], a[l+1], …,原创 2016-12-21 20:42:00 · 579 阅读 · 0 评论 -
[2017集训队作业自选题#154]简单数据结构题
题目大意一颗点权树,初始点权均为0。 每次操作将所有距离x为1的点点权+1,然后希望你求出距离x为1的点点权异或和。一个转化把修改分成儿子修改和单点修改,把询问分成儿子询问和单点询问。 每次相当于x的儿子修改+x的父亲单点修改,询问类似。根号算法发现一个点儿子的点权种类数最多根号种。 不妨用链表(动态桶)维护每种点权出现次数。正解注意到x^(x+1)=2*lowbit(~x)-1。 我们不妨原创 2017-11-14 12:00:56 · 1138 阅读 · 0 评论