for循环+随机数 实现相同位置的元素交换 public <T> void shuffle(List<T> list) { int size = list.size(); Random random = new Random(); for(int i = 0; i < size; i++) { in ...
分类:
其他好文 时间:
2018-10-19 14:01:33
阅读次数:
187
"题面" 题解 带修改的主席树???~~我可没有那么勤快去写个树套树~~ 只要它不强制在线,我就可以用整体二分做 思路大致与 "【ZJOI2013】K大数查询" 相似 只不过放在树上做,~~还带修改~~ 同样处理出询问,并且一个修改操作要拆分成两个 代码 cpp include include in ...
分类:
其他好文 时间:
2018-10-17 00:10:35
阅读次数:
209
3514: Codechef MARCH14 GERALD07加强版 Description N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。 N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。 Input 第一行四个整数N、M、K、type ...
分类:
其他好文 时间:
2018-10-16 10:16:57
阅读次数:
177
毒瘤数据卡普通莫队!! 这道题跟普通的莫队题目差不多,但是多了一个修改操作。 所以带修莫队就横空出世了。 普通莫队记录左端点和右端点,那么这里就再记录一个时间轴,表示当时已经执行过几次修改。 之后莫队模板就有六个while,前四个是一样的。 最后两个判断当前修改次数和目标修改次数的关系。这个就是灵魂 ...
分类:
其他好文 时间:
2018-10-15 23:21:15
阅读次数:
185
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3911 题意: 给你一段01序列,有两个操作: 1.区间异或,2.询问区间最长的连续的1得长度 思路: 线段树区间合并,开六个数组分别表示: lsum0 区间左边界开始从左到右连续0的个数 rsum0 ...
分类:
其他好文 时间:
2018-10-12 21:19:14
阅读次数:
161
排序是数据处理中十分常见且核心的操作,虽说实际项目开发中很小几率会需要我们手动实现,毕竟每种语言的类库中都有n多种关于排序算法的实现。但是了解这些精妙的思想对我们还是大有裨益的。本文简单温习下最基础的三类算法:选择,冒泡,插入。 先定义个交换数组元素的函数,供排序时调用 简单选择排序 简单选择排序是 ...
分类:
编程语言 时间:
2018-10-12 13:44:14
阅读次数:
203
参考链接https://www.linuxprobe.com ...
分类:
系统相关 时间:
2018-10-11 01:45:08
阅读次数:
197
例如:输入s[]="aaa",输出sa[0]=2,sa[1]=1,sa[2]=0; cpp void build_sa(const char s[],int sa[]) { int m=128,n=strlen(s); int x=new int[n], y=new int[n], c=new in ...
分类:
编程语言 时间:
2018-10-10 17:53:20
阅读次数:
163
参考:《STL源码剖析》第6章 算法 include include include / / template T accumulate(InputIterator first, InputIterator last, T init) { for (; first != last; ++first) ...
分类:
编程语言 时间:
2018-10-09 20:03:20
阅读次数:
167
https://vjudge.net/problem/SPOJ-DISUBSTR 有两种方式来求去除重读的子串 ...
分类:
其他好文 时间:
2018-10-08 22:19:24
阅读次数:
181