码迷,mamicode.com
首页 >  
搜索关键字:lowbit    ( 485个结果
P1531 I Hate It 题解
P1531 I Hate It 题目背景 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。 题目描述 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩 输入格式 第一行,有两 ...
分类:其他好文   时间:2020-03-30 23:07:32    阅读次数:67
最近公共祖先 LCA 模板
算法步骤 时间复杂度 $O((n+q)\log n)$,$n$是问题规模,$q$是询问个数 倍增法求$LCA$ $fa[i,j]$表示从$i$开始向上走$2^j$所能到达的节点 $(0 \leq j\leq\log n)$ $depth[i]$表示节点$i$的深度 哨兵:如果从$i$开始跳$2^j$ ...
分类:其他好文   时间:2020-03-29 21:26:30    阅读次数:76
[CF959E] Mahmoud and Ehab and the xor-MST - 贪心,最小生成树
$n$ 个点的完全图标号 $(0 n 1)$,$i$ 和 $j$ 连边权值为 $i\ \textrm{XOR}\ j$,求 MST 的值 Solution 设 $f[n]$ 表示点数为 $n+1$ 时的答案,那么贪心地考虑,显然 $f[0]=0, f[n]=f[n 1]+lowbit(n)$ 根据观 ...
分类:其他好文   时间:2020-03-28 13:37:08    阅读次数:72
Codeforces Round #629 (Div. 3)
A "Divisibility Problem" 题意 给你两个正整数$a,b$ 你每次可以执行一次$a++$操作,问你最小的操作步数,使得$a$能被$b$整除 思路 数学 分情况讨论 当$ab$ 时,只要把$a$调整到离$kb$最近的一个$b$的倍数,即$\lceil {a / b}\rceil ...
分类:其他好文   时间:2020-03-27 11:16:20    阅读次数:82
AtCoder ABC 158F Removing Robots
题目链接:https://atcoder.jp/contests/abc158/tasks/abc158_f 题目大意 有$N$个机器人分布在数轴上不同的位置,初始为未激活状态,作为上帝,你可以手动激活任意数量的机器人,当第$i$个机器人被激活时,它会向前走$D_i$个单位长度然后自爆,并且坐标区间 ...
分类:其他好文   时间:2020-03-21 12:41:00    阅读次数:93
LeetCode 315. Count of Smaller Numbers After Self(线段树,树状数组)
"题目" 题意:找到数组里每个元素的右边有多少个元素小于当前元素 题解:单点更新,区间查询。线段树或者树状数组都可以。注意要离散化 ...
分类:编程语言   时间:2020-03-13 20:55:32    阅读次数:68
[题解] HH的项链
"题目链接" 树状数组(或线段树)离线 我们可以维护一个树状数组 $tree$ ,计算 $[1,i]$ 出现的不同种类的个数。然后根据前缀合思想,取 $ans=query(r) query(l 1)$ 离线按 $r$ 排序查询区间。 由于我们要求不重复,所以靠右的比靠左的更有价值(更关心靠右的)所以 ...
分类:其他好文   时间:2020-03-11 10:52:44    阅读次数:56
位运算膜法
n的第k位数是几 先把这个数字移动k位 然后再判断个位是什么 lowbit(x)是返回最后的一位1 x = 101010 最后一位1 ~x = 010101 最后一位1 ~x + 1 就会导致最后一位0变成1,然后全部都被取出来了 补码的意义 x就是x的补码 补码就是~x+1 原数字找到最后一个1, ...
分类:其他好文   时间:2020-02-28 15:31:38    阅读次数:61
树状数组模版
1 int lowbit(int x) { 2 return x & -x; 3 } 4 5 void add(int x, int y) { 6 for (int i = x; i <= n; i += lowbit(i)) 7 c[i] += y; 8 } 9 10 int ask(int x) ...
分类:编程语言   时间:2020-02-28 01:36:38    阅读次数:75
树状数组,适用于单点修改,区间查询
int c[50005]; //对应原数组和树状数组 int lowbit(int x){ return x&(-x); } void updata(int i,int k){ //在i位置加上k while(i <= n){ c[i] += k; i += lowbit(i); } } int g ...
分类:编程语言   时间:2020-02-25 09:54:54    阅读次数:81
485条   上一页 1 ... 3 4 5 6 7 ... 49 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!