自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 poj 3067 Japan(线段树 | 树状数组)

题意:有M个城市到N个城市修高速,问这个过程会有多少个交叉点?这道题和Stars很像,基本一个模型。在纸上画一画会发现,按照一个(小到大)顺序下来,交点的个数是以另一边为数组,大于该数把所有路按照以东海岸变为起点u,西海岸为终点v保存下来。然后按照u从小到大顺序排序(v的顺序不重要)。排完序之后,依次枚举就相当于从西海岸的城市1开始依次开始建立连接一直到n为止。当处理到第i条边时,

2014-10-31 21:19:24 707

原创 poj 1195 Mobile phones(树状数组)

裸树状数组,关键在于二维的求和操作不要写错。getsum(u+1,v+1)+getsum(x,y)-getsum(u+1,y)-getsum(x,v+1);#include#include #include#include#include #include#includeusing namespace std;#define N 1050int n,m

2014-10-31 00:07:08 634

原创 poj 3321 Apple Tree(树状数组)

辉煌北大的月赛题质量真高啊,这种树状数组真难想到。树状数组的基本用法是区间,单点的应用,起初这个怎么都想不到如何套用到树状数组。转化方法是 将树上的节点信息查询,转为深度优先中节点顺序(代表结点编号)。进结点与出结点分别代表该结点管辖范围。题目大意级是说,给你一颗树,最初每个节点上都有一个苹果,有两种操作:修改(即修改某一个节点,修改时这一个节点苹果从有到无,或从无到有)和查询

2014-10-30 22:17:21 669

原创 poj 2352 stars (树状数组)

这个题目刚开始没读懂,以为就是二维树状数组求上角矩阵和。其实根本不用二维,因为数据已经有序,每次求的时候都是X方向上的比较。不过误打误撞也写了个离散化的代码。WA:#include#include #include #include#includeusing namespace std;#define N 15000int c[N][N],n,mm; int d[N];

2014-10-29 17:42:45 554

原创 POJ 2155 树套树—线段树套线段树

Matrix 楼教主出的题目。题意:一个矩阵初始值都为0,每次给“C X1 Y1 X2 Y2" 去反转这个矩阵。或者"Q X1 Y1"查询这个点是0/1。第一次接触树套树的题目。一句AC:对于基本的线段树,再在每个节点建一个y方向上的线段树。tree[n][m]这道题目更新的时候,对于X方向就是(X1,X2)这个区间,再在其上对Y1,Y2进行更新。对于查询,X方向上,自顶向下到

2014-10-29 10:00:32 1578

原创 树链剖分(模版)

树链剖分是解决在树上进行插点问线,插线问点等一系列树上的问题假如现在给你一棵树,然后没两条边之间有一条权值,有一些操作,1:x---y之间的最大权值是多少,2:改变x---y之间的权值当前这样的操作有很多,如果直接用暴力的方法的话肯定不行,那么就要想一个好的方法,我们可以想一下能不能借助线段树解决,能不能想一种方法对树上的边进行编号,然后就变成区间了。那么我们就可以在线段树上进行操作了

2014-10-23 16:25:54 652

原创 2014 鞍山 现场赛 E题题解

只说下本弱的失误。虽然一眼看出来了阶段的特征,但是在思考dp的时候还是被(x,y)+(y,z)这种形式的求解策略桎梏。应该转变视角再来看待这个问题,不然永远会被这种直观的思维桎梏 。(x,y)+(y,z)+......这种形式,每个点都只与前后两个sorce()有关,明显的阶段划分。当前i个的最大值已知,此时b[i+1]元素来了。死到这里了×由i状态与b[i]推导i+1状态

2014-10-23 12:08:12 737

原创 单调队列 单调栈总结

单调队列单调栈应用范围:

2014-10-20 19:56:06 4704

原创 计算机区分指令和数据?

计算机区分指令和数据有以下2种方法: 通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码部分提供存储单元地址的取出的是操作数。通常完成一条指令可分为取指阶段、分析阶段和执行阶段。在取指阶段通过访问存储器可将指令取出;在执行阶段通过访问存储器可将操

2014-10-20 16:25:24 2167

原创 POJ 1470 LCA tarjan 离线算法

这里有个讲解非常明白,虽然没证明。点击打开链接 还有个数据结构的学习  点击打开链接 伸展树/Treap/划分树/ 归并树步骤:tarjan算法的步骤是(当dfs到节点u时):1 在并查集中建立仅有u的集合,设置该集合的祖先为u1 对u的每个孩子v:   1.1 tarjan之   1.2 合并v到父节点u的集合,确保集合的祖先是u2 设置u为已遍历3

2014-10-19 21:21:10 670

原创 树链剖分

树链剖分应用范围:这样的树,从底向上看每个点都只和一个点相连,即任何两点间都有唯一的路径。划分重链轻链数据结构:siz[u] 以u为根子树的节点数dep[u] u的深度(根为1)fa[u]  u的父亲son[u] 与u在同一重链上的儿子top[u] u所在的链顶端节点w[u]   表示u与父节点连边在线段树中的位置剖分后的树有如下性质:    性

2014-10-19 15:03:34 440

原创 POJ 2777 count color(线段树,lazy标记)

这里有一个思想:我们在更新的时候不必要更新到叶子节点,只要更新到当前区间包含线段树区间即可。设计一个标志位,更新到此。A Simple Problem with Integers 也是一个类似的题目设计两个函数push_down 将结点信息传递到下层节点(inc, sub,)push_up      将下层节点信息反馈到上层(max,min,count)#i

2014-10-19 10:52:27 997

原创 HDU 1754 I Hate It(线段树,单点更新,线段查询)

这道题是线段树入门题,其问题是单点更新,线段查询。这里本来还打算用lazy标记做一下,但是不行,必须更新到单点#include #include #include #include #include #include #include #include #include #include #include #include #include using n

2014-10-19 10:01:39 664

原创 HDU 5001 Walk

这道题的精度卡的人难受死了。按照老师思路做的,矩阵的值表示i走到j的概率,求不经过某点的概率。起始位置每个点的概率是1/N,然后将那个点外出的边都去掉,矩阵N次后,即可得到走到该点的概率,1-P即可。注意:这道题有精度问题,可能会过小出现负数,1e-6在构图的时候为了避免每次N循环,可以将每条边的连接顺序放入容器vector中,.size()就都有了。#include #

2014-10-18 19:14:55 568

原创 矩阵构造方法汇总(结合递推)

矩阵构造方法,这个是网络预赛被坑了以后才研究的。1.矩阵构造一般来看先明确要求哪些量,这些量构成一个列矩阵(一定要反映递推式中的各个)然后构造矩阵A去得到递推项他人的一个总结:点击打开链接  矩阵十题   二维图形几何变换矩阵的引例,Fibonacci数列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1的第n项快速求法【f[n-2],f[n-1]】*

2014-10-18 11:18:15 3309

原创 hdu 4417,poj 2104 划分树(模版)归并树(模版)

这次是彻底把划分树搞明白了,与此同时发现了模版的重要性。写程序一个字符都不能错啊~~~划分树详解:点击打开链接题意:求一组数列中任意区间不大于h的个数。这个题的做法是用二分查询  求给定区间内的中值再与K进行比较。重点介绍划分树:数据结构:t[20][maxn] // 树结构,划分树存储sum[20][maxn] // 记录该行[l,i] 中i到

2014-10-18 11:10:45 938

原创 线段树小结

感觉以后什么东西如果说你学精了,那么是否能有一句通俗的话表达出来,然后再说细节问题。

2014-10-17 21:25:39 591

原创 (高斯消元)HDU 5006 Resistance 2014 鞍山网赛

题目链接题意:有一个电路,用0/1的电阻连接起来。给定两点,问之间的电阻为多少?先回忆一下中学物理知识,若用并联串联去做,碰到复杂电路根本分析不清。这里用到基尔霍夫定理。在任一瞬时,流向某一结点的电流之和恒等于由该结点流出的电流之和。在任一瞬间,沿电路中的任一回路绕行一周,在该回路上电动势之和恒等于各电阻上的电压降之和。那么我们对于图中的点(电阻为0的看作一个点

2014-10-17 10:06:35 1249 3

原创 HDU 5036 Explosion 2014 北京网络赛E题

点击打开链接概率题,这是我第二次接触概率题目。上次是另一个比赛中的walk貌似概率题经常考察。 题意:有N间房子,每个房子有一扇门,且其中会放有若干其他房间钥匙。此时若无法打开可以用炸弹炸开。求使用炸弹的期望。看到这个题目,若傻傻的用搜索就TLE。抽象思考下,打开特定一扇门,至多用一次炸弹。因此本题是求每个点用炸弹打开概率的和。对于每个点V,其打开概率就是1/S

2014-10-16 17:48:51 1015

原创 HDU 4433 locker 2012 Asia Tianjin Regional Contest 状态压缩DP

题意:给出一个长度最长为1000的数字序列,像密码锁一样,你可以上下滑动,同时会0-9的循环。每次操作,最多对连续的三个数字操作。现在给出起始序列和目标序列,求出最少的操作次数,从起始序列到目标序列。想这道题花了一天的时间,我认为是道很难的DP。这个阶段很好划分,对于前面完成的密码锁就不再考虑。问题的关键是这个旋转每次可以的情况很多。同时也可以发现当I位置上确定移好后,至多影响到后

2014-10-16 15:37:09 1444

转载 字典树的多种实现方法

姿势1:静态数组形式struct Trie { int ch[maxnode][sigema_size],val[maxnode],sz; Trie() {sz=1;memset(ch[0],0,sizeof(ch[0]));memset(val,-1,sizeof(val));} void insert(bign s,int v) {

2014-10-16 15:36:30 587

原创 We Need Medicine zoj3812 The 2014 ACM-ICPC Asia Mudanjiang Regional

一道非常不错的状态压缩+map映射+背包的DP题目。题意很简单,就是给N个物品有两个属性 a ,b.问对于A,B的要求是否可以用N件物品组合产生。若满足则输出一种。这个直观感受就是背包问题啊,但是看下数据规模The first line contains two integers N (1 N <= 400) andQ (1 Q For the next N lines,

2014-10-14 23:13:36 669

原创 动态规划从引例讲起

以前做了很多关于DP的题目,也明白规模减小,递推向上

2014-10-14 16:08:14 618

原创 IR中python 写倒排索引与查询处理

学习信息检索课程,老师让写一个倒排索引与查询处理的程序,于是抱着试试的心态自学python写了出来。整个没有什么太大的算法技巧,唯一的就是查询处理那里递归函数正反两次反复查找需要多调试下。数据结构:#-*-coding:utf-8-*-#!/usr/bin/python'''数据结构建立索引mydir 文档列表onedoc 每一个文档mydoc 当前查询的文档

2014-10-13 07:54:14 3487

原创 Dancing Links 学习 AND 代码详解

今天花时间学习了下Dancing Links,其核心思想是降低在搜索中的范围,减少复杂。降低的方法就是将用链式结构构造的图中不需要的点去掉。如果回溯再恢复。这个方法依赖的数据结构是用数组存储的十字链表L[NN],R[NN],U[NN],D[NN] 左右上下的链接构造数据结构:head,cnt,L[NN],R[NN],U[NN],D[NN],H[NN],COL[NN],S[NN]

2014-10-13 07:18:51 921

原创 python 基本内容

1. 包import 模块名这个包首先在当前目录找。每个模块中可以用__name__判断是否为__main__来运行程序创建包pack,建立一个文件夹然后创建__init__.pyimport pack.filenamepack.filename.f()引用包重命名 import pack as newnamefrom cal import *  #这样

2014-10-12 08:05:31 959

原创 HDU 1010 奇偶剪枝,scanf,getchar,gets,cin的区别

借此机会学习下gets,getchar,scanf 这几个函数在接收时的不同1.只有gets会把换行符接收,转化为字符串末尾的'\0',其他的不接收,将'\n'留在缓冲区中,所以之后的读取都会度'\n'2.scanf当读到空格,TAB就会结束,下次会从其后开始3.一般用scanf接收数据后,再用getchar把换行符去掉cin的输入忽略空格和回车所以以后的输入要求判

2014-10-11 16:59:42 654

原创 读书笔记-程序观点下的线性代数

线性代数的核心:向量模型线性代数到底是一种客观的自然规律还是人为的设计?所有程序语言的共同性在于:建立了一套模型,定义了一套语法,并将每种语法映射到特定的语义。程序员和语言实现 者之间遵守语言契约:程序员保证代码符合语言的语法,编译器/解释器保证代码执行的结果符合语法相应的语义。程序的编译和解释本质上是不同模型间的语义映射从应用的角度看,线性代数是一种人为设计的领域特定语言

2014-10-06 22:10:17 1170

Spring-IOC实现

Spring-IOC的简单实现,包括注解和注解解析,欢迎大家拍砖~!

2015-09-01

Spring-IOC学习记录

自己学习Spring过程中做的记录 自己留着自己看

2015-08-06

Spring示例代码

Spring示例代码,忘记的时候看一下~

2015-08-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除