Problem A: 管道(pipe) Time Limit: 1000 ms Memory Limit: 512 MB Description 给你一个城市下水道网络图,你需要选出一些管道,使得在只使用这些管道的情况下,令整个网络联通,并且花费最小。 网络图可以看做是无向连通图,有n个节点和m条边 ...
分类:
其他好文 时间:
2019-08-30 19:07:10
阅读次数:
53
题意 有、复杂,自己上网搜 思路 $(x,y)$ 表示从$x$到$y$联通的时间长度。 那么查询操作相当于二维平面上的单点查询。 对于每一个$i$,维护一个最左能到达的$lm$,和最右能到达的$rm$。 那么对于每一个更新操作,相当于对左上角为$(lm,i)$,右下角为$(i,rm)$的矩形做修改。 ...
思路:处理每一位右边第一组互质的数的右边数的位置,O(1)处理查询; 我们先处理对于一个数右边第一个与它互质的数 从n->1开始 对于每一个数 对其进行素因数分解,记录每一个素数被那些数所包含 同时二进制标记处理其本身与那些数不互质 最后对i-n取反 找第一个1出现的位置,就是右边与它互质的第一个数 ...
分类:
其他好文 时间:
2019-08-21 11:20:08
阅读次数:
59
线段树扫描线模板 include define INF 0x3f3f3f3f define full(a, b) memset(a, b, sizeof a) define __fastIn ios::sync_with_stdio(false), cin.tie(0) define pb push ...
分类:
其他好文 时间:
2019-08-15 12:37:32
阅读次数:
82
学习来源 首先要明确树状数组的本质就是带修改的前缀和,它每次用 lowbit 来很巧妙的寻找所属前缀的位置 在这些位置+k 然后还是用 lowbit 来查询这段和应该属于的树状数组的位置。 最简单的就是单点更新和区间查询,或者区间更新 然后就是区间更新和单点查询 这个就要用到差分的思想了 差分学习 ...
分类:
编程语言 时间:
2019-08-09 23:17:33
阅读次数:
104
树状数组 lowbit(i)=i & -i ci=i-lowbit(i)+1 ~ i c1 2 3 4 5 6 7 8... for(1~i) sum+=ci 区间加值:i+lowbit(i) 修改单点 区间修改 在两个端点各加一个标记 区间查询 求1~i 前缀和 sumi sumi 线段树 像归并 ...
分类:
编程语言 时间:
2019-08-05 18:57:41
阅读次数:
99
【HDU 6014】 SOLVED 【题目大意】给定N个节点,两点之间距离是节点编号的与,在这样的前提下,求最小生成树,输出代价和路径 【思路】通过lowbit求第一个0的位置,然后令此位为1的值就是最优解 【总结】1.与或非都要先考虑拆分后二进制的特性 2.检验算法正确性时,验证数据要是自己验证能 ...
分类:
其他好文 时间:
2019-08-04 13:13:44
阅读次数:
97
A - Settlers' Training CodeForces - 63B 题意 给你一串数字,相同的数字为一组,每次可以给一组中的一个数字加一,问这一串数字全变成K需要多少步? 题解 模拟 C++代码 /** /*@author Victor /*language C++ */ //#incl ...
分类:
其他好文 时间:
2019-08-03 21:15:54
阅读次数:
89
题目链接: "Click here" 题目大意:两个点之间的边权为编号按位与的值,求最小生成树,方案要字典序最小 Solution: 一道不难的构造题,每个点连向他取反后的lowbit值,这样边权为0,若lowbit值大于n,则连1 这样自构造出来的必然是最小生成树,且满足字典序最小 Code: c ...
分类:
其他好文 时间:
2019-08-03 00:42:10
阅读次数:
61
陌上花开,缓缓归矣——赠戴氏夫人 CDQ模板 一维sort,二维归并,三维树状数组 二维归并时,维护所求值 ...
分类:
其他好文 时间:
2019-08-02 22:19:35
阅读次数:
123