昨天千里万里跑回学校打那个网络赛,然并卵,没有拿到现场赛资格。今天花了一下午一晚上时间学习树状数组,lowbit函数取x&(-x)即可得x的二进制从右往左第一个1的位置,add函数用来修改一个值以及所有包含这个元素节点的值,quiry查询是为了获得a[1]+a[2]+??????+a[x]的值,那么 ...
分类:
其他好文 时间:
2018-08-26 22:33:10
阅读次数:
314
现在才学树状数组...太惭愧了...而且并没有弄懂原理 设lowbit(x)表示的是把x的二进制只留下最低一位的1,然后lowbit(x)=x&(-x) (我也不知道为什么) 设c[x]表示从i往前一共lowbit(x)个数的和,那么x-lowbit(x)就是c[x]表示的范围的前一个数。 然后可以 ...
分类:
编程语言 时间:
2018-08-25 22:58:09
阅读次数:
177
题意: 无向图,给一个顶点染色可以让他相邻的路不能通过,但是相邻顶点不能染色,求是否可以让所有的路不通,如果可以求最小染色数。 思路: 对于无向图中的每一个连通子图,都只有两种染色方法,或者染不了,直接搜即可,注意搜的姿势 代码: ...
分类:
其他好文 时间:
2018-08-22 22:48:27
阅读次数:
210
HDU2586 纯LCA模板 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #define lowbit(x) x&(-x) #define rep(i,l,r) for(int i=l;i<=r;++i ...
分类:
其他好文 时间:
2018-08-20 11:34:02
阅读次数:
155
1 ll lowbit(ll x) 2 { 3 return x&-x; 4 } 5 6 void modify(ll x,ll d) 7 { 8 for(int i=x; i<=n; i+=lowbit(i)) c[i]+=d; 9 } 10 11 ll sum(ll x); 12 { 13 ll ...
分类:
编程语言 时间:
2018-08-19 13:01:01
阅读次数:
120
1、什么是逆序数? 2、用树状数组求逆序数的总数 2.1该背景下树状数组的含义 2.2如何使用树状数组求逆序数总数 2.3 C++实现代码 1、什么是逆序数? 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序数的总数就是这个排列的逆序数 ...
分类:
编程语言 时间:
2018-08-19 11:55:50
阅读次数:
140
You are given an N × N matrix. At the beginning every element is 0. Write a program supporting 2 operations: 1. Add x y value: Add value to the elemen ...
分类:
编程语言 时间:
2018-08-14 11:22:46
阅读次数:
136
做了题还是忍不住要写一发题解,感觉楼下的不易懂啊。 本题解使用latex纯手写精心打造。 题意:求$\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$的正整数解总数。 首先,不会线筛素数的先去做下 "LuoguP3383" 。 开始推导。 $$\frac{1}{x}+\fra ...
分类:
其他好文 时间:
2018-08-13 15:53:47
阅读次数:
114
你是否讨厌线段树那冗长的代码?你是否还在因为线段树的难调试而满头♂dark汗?那么,请不要错过!超级树状数组特价!只要998,只要998! ##¥……#……¥%……&%¥……ER#%$#$#^T%$^$% 超级树状数组,其实是一种能够支持区间修改和区间查询的树状数组,和线段树相比,它的常数极小,不需 ...
分类:
编程语言 时间:
2018-08-13 10:48:45
阅读次数:
167
看了很多大佬的博客,每看一篇博客懂一部分,总算是大概理解了树状数组这个神奇又强大的东西; 在这里我做个整合,把我认为好的部分摘录下来; 参考博客1:https://blog.csdn.net/flushhip/article/details/79165701 参考博客2:https://blog.c ...
分类:
编程语言 时间:
2018-08-10 21:32:14
阅读次数:
208