女神涉及的范围岂是吾们渣渣可以揣测到的?《基于连通性状态压缩的动态规划问题》 ——
插头dp《从《Cash》谈一类分治算法的应用》 —— cdq分治《弦图与区间图》等等等等。。Orz,渣渣还要更加努力。。
分类:
其他好文 时间:
2014-06-13 14:22:23
阅读次数:
192
题目:http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=517之前差分约束搞了一发,现在终于知道贪心了。对区间右端点排序,尽量从右端点取数。
数据比较小,n^2就行了。#include #include #include #include #include #inc...
分类:
其他好文 时间:
2014-06-11 08:21:10
阅读次数:
276
插入排序(上)
基本思想:每次将一个待排序的的元素,按其关键字大小插入到已经排好序的子表的适当位置,直到全部元素插完为止。直接插入排序简写排序思路:
假设待排序的元素存放在R[0.....n-1]中,在排序过程中,将R划分为两个区间,分别为R[0.....i-1]和R[i....n-1](刚开始时....
分类:
其他好文 时间:
2014-06-08 20:50:06
阅读次数:
245
堆排序
// 测试堆排序
// @start:调整的起点
// @end:调整的终点,在堆排序的过程中,不断地减小调整区间,end参数起作用
void SiftDown(int arr[], int start, int end)
{
int i = start;
int j = 2*i + 1; // j记录的是i结点的左孩子
int temp = arr[i];
...
分类:
其他好文 时间:
2014-06-08 16:19:45
阅读次数:
187
在某位不知名的大大推荐下做了这题,和我上一篇的线段树很像,于是怒拍,思想基本相同,记录区间最大值,当最大值小于取模时可以剪枝。
今后再遇到此类问题算是能解决了
// file name: d.cpp //
// author: huangjipeng //
// creat ...
分类:
其他好文 时间:
2014-06-08 15:36:11
阅读次数:
354
要询问一个数列的某区间的最大值,其中会更新数据。
这样的题目使用树状数组是可以的,但是因为要牵涉到区间操作,故此还是线段树比较好点。
不过使用树状数组也是可以的,就是查询的时候麻烦点,注意计算,不要超出区间了。
看下面的query函数,这是主要的难点函数,其中的-1操作和这个判断r - lowbit(r) >= l,都很蛋疼,一不小心就会出错。
#include
#inc...
分类:
其他好文 时间:
2014-06-08 09:02:49
阅读次数:
345
firebug 打UTF8 字符:var res = ""; for(var
i=0x2000;i< 0x2bff ;i++){ res += i.toString(16) + "\t:" + unescape ( "%u" +
i.toString(16) ) +"\t\t" ; } reshtt...
分类:
其他好文 时间:
2014-06-07 20:08:39
阅读次数:
448
首先想到线段树,然后刚开始写忽然想到树状数组求和岂不是更快,而且编程复杂度又小,于是把之前写的删掉,写树状数组,写完模版之后忽然发现这题竟然是区间修改!于是又删掉重写,忽然发现不会处理又加又乘的,果断看题解……经过几乎两个小时的调试,终于1A。需要注意的是,一定要让线段树的每一个区间保存的值时刻为正...
分类:
其他好文 时间:
2014-06-07 17:04:11
阅读次数:
229
1、概述线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN)。线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a...
分类:
其他好文 时间:
2014-06-07 16:55:29
阅读次数:
307
这么炫酷的数据结构简直飘逸到不行,竟然在这么狂躁的状态下过了一遍基础题型,略浪费。
强项:在一维的情况下可以完成区间查询,更新,翻转,子区间的增删,确定前驱后即,总是一句话线段树能做的它就能做,线段树不太好做的他也能很方便的实现。
弱项:没有办法向更高维度扩展(反正本渣没有想出来),这也是一个局限吧。代码太长. . . . . 太致命了。
伸展操作:核心操作,通过一系列的旋转将某个节点旋...
分类:
其他好文 时间:
2014-06-07 12:53:50
阅读次数:
210