Problem Description This is a very easy problem, your task is just calculate el camino mas corto en un grafico, and just solo hay que cambiar un poco ...
分类:
其他好文 时间:
2018-08-06 16:28:31
阅读次数:
164
树状数组 树状数组的修改和求和都是O(logn),效率非常高。 树状数组——lowbit(x)例如21二进制是10101,1所在的位置是0,2,4,可以分解成2^4 + 2 ^ 2 + ^ 0。进一步的[1,x]可以分解成O(logx)个小区间: 1.长度为2^4的小区间[1,2^4] 2.长度为2 ...
分类:
编程语言 时间:
2018-08-05 11:54:34
阅读次数:
137
__builtin: __builtin_popcount:二进制中 1 的个数__builtin_ctz:末尾的 0,即对 lowbit 取log__builtin_clz:开头的 0,用 31 减可以得到下取整的 log 复杂度O(1)如果是 long long,函数名末尾加 ll,31 改成 ...
分类:
其他好文 时间:
2018-07-31 11:06:47
阅读次数:
157
1 /** 2 * Fuck you. 3 * I love you too. 4 */ 5 #include<bits/stdc++.h> 6 #define lson i<<2 7 #define rson i<<2|1 8 #define LS l,mid,lson 9 #define RS ...
分类:
其他好文 时间:
2018-07-29 17:59:35
阅读次数:
175
让ci = ai / bi, 求sum(ci)的值,因为每次 ai 都是加一的,那么我可以用一颗线段树来维护每个 i 位置的 ai 距离达到 bi 还需要的数的最小值,更新是每次都减一,如果我某一个区间的最小值等于 0, 这就说明我这时候的ai已经满足了ai/bi==1的情况,那么对应的ci的位置就 ...
分类:
其他好文 时间:
2018-07-26 15:18:32
阅读次数:
144
【题目描述】 给出一个整数,输出比其大的第一个数,要求输出的数二进制表示和原数二进制表示下1的个数相同。 【题目链接】 http://noi.openjudge.cn/ch0406/1455/ 【算法】 1、自己想的:设原数为n,从lowbit(n)开始左移找到第一个0的位置,同时记录该位置之前1的 ...
分类:
其他好文 时间:
2018-07-22 14:01:58
阅读次数:
175
class TreeArraryTwo{public :const static int cmaxn = 1e3+200;int date[cmaxn][cmaxn];int xsz, ysz;void init(int size_x, int size_y) {xsz = size_x; ysz ...
分类:
编程语言 时间:
2018-07-22 11:22:34
阅读次数:
157
Description 有一个 $n n$ 的矩形,给出 $m$ 个子矩形,这些矩形内部的点都是白色的,其余的点都是黑色,每一次你可以选择一个变长不超过 $k$ 的正方形,满足这个正方形的右下角是白色的,并将这个正方形内的颜色取反 两个人轮流操作,不能操作者输,求是否先手必胜 "题面" Soluti ...
分类:
其他好文 时间:
2018-07-15 11:03:54
阅读次数:
209
【算法】 lowbit()运算取出非负整数n二进制表示下最低位的1及其后的0表示的值: 对n按位取反后加1(即补码操作,-n),最低位1即其后位的表示不变,而之前的每一位均取反了,于是按位与即得到所需的值。 【应用】 1.树状数组 2.配合Hash找出n二进制表示下为1的位 ...
分类:
其他好文 时间:
2018-07-14 14:43:28
阅读次数:
145
//树状数组 //支持给某位置增加常数与查询前缀和 #include #include #include #include #include #include using namespace std; int n,a[1001],tree[1001];//tree树状数组 int lowbit(in... ...
分类:
编程语言 时间:
2018-07-08 18:07:16
阅读次数:
201